Android中WebView的一些简单用法

 更新时间:2016年08月14日 15:41:12   作者:曾田生z  
这篇文章主要介绍了Android中WebView的一些简单用法,WebView非常简单,Android已经封装的非常完善,写个小例子覆盖其间常用的几个方法;

Android中WebView的一些简单用法

一直想写一个关于 WebView 控件的 一些简单运用,都没什么时间,这次也是挤出时间写的,里面的一些基础知识就等有时间再更新讲解一下,今天就先把项目出来做一些简单介绍,过多的内容可以看我的源码,都传到github上了。

下面是项目的效果图:

应用用到的是 MVP 设计模式,对这种模式还不太了解的可以先自行google一下,不然项目估计会看的晕,虽然我的代码都很简洁的。

对于MVP 可以带着一个思路看源码,那就是 activity(或其他组件)通过 xxPresenter 去拿数据,拿到数据 在 xxPresenter 再利用 xxIView(这是一个接口)更新数据,那么activity(或其他组件)继承 xxIView 这个接口 就可以 更新UI 了

其实 WebView 只用到一些简单的,深入应用本篇文章会在更新!

其中:

    //设置WebView的一些缩放功能点
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    webView.setHorizontalScrollBarEnabled(false); 
    webView.getSettings().setSupportZoom(true); 
    //设置WebView可触摸放大缩小
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.setInitialScale(70); 
    webView.setHorizontalScrollbarOverlay(true); 
    //WebView双击变大,再双击后变小,当手动放大后,双击可以恢复到原始大小
    //webView.getSettings().setUseWideViewPort(true); 
    //提高渲染的优先级
    webView.getSettings().setRenderPriority(RenderPriority.HIGH);
    //允许JS执行
    webView.getSettings().setJavaScriptEnabled(true);
    //把图片加载放在最后来加载渲染
    //webView.getSettings().setBlockNetworkImage(true); 
    //用WebView将字符串以HTML的形式显示出来 
    //webView.loadDataWithBaseURL("fake://not/needed", <p>zzz</p>, "text/html", "utf-8", "");
    //在同种分辨率的情况下,屏幕密度不一样的情况下,自动适配页面: 

与 native 进行交互:

 mWebView.addJavascriptInterface(new WebAppInterface(customView.getContext()),"Android");

 public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
      mContext = c;
    }

    /** Show a toast from the web page */
    @JavascriptInterface
    public void showToast(String toast) {
      // 比如点击 webview加载的html 片段 可以 让应用弹出一个土司
    }

这里给 webview 设置 夜间模式:

也就往 html 页面写入 html 标签 "<div class=&quot;night&quot;>"

  public static String buildHtmlWithCss(String html, String[] cssUrls, boolean isNightMode) {
    StringBuilder result = new StringBuilder();
    for (String cssUrl : cssUrls) {
      result.append(String.format(CSS_LINK_PATTERN, cssUrl));
    }

    if (isNightMode) {
      result.append(NIGHT_DIV_TAG_START);
    }
    result.append(html.replace(DIV_IMAGE_PLACE_HOLDER, DIV_IMAGE_PLACE_HOLDER_IGNORED));
    if (isNightMode) {
      result.append(NIGHT_DIV_TAG_END);
    }
    return result.toString();
  }

项目还得有待改进,等这段时间忙完就跟新!!!!

项目源码 github

相关文章

  • Android实现图片点击爆炸效果

    Android实现图片点击爆炸效果

    这篇文章主要为大家详细介绍了Android实现图片点击爆炸效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • Android开发之模仿微信打开网页的进度条效果(高仿)

    Android开发之模仿微信打开网页的进度条效果(高仿)

    这篇文章主要介绍了Android开发之模仿微信打开网页的进度条效果(高仿)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Android几种多渠道打包的步骤详解

    Android几种多渠道打包的步骤详解

    在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。这篇文章主要介绍了Android几种多渠道打包,需要的朋友可以参考下
    2019-09-09
  • Android原生定位服务LocationManager

    Android原生定位服务LocationManager

    这篇文章主要为大家介绍了Android原生定位服务LocationManager实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android Canvas自定义实现时钟效果

    Android Canvas自定义实现时钟效果

    这篇文章主要为大家详细介绍了Android Canvas自定义实现时钟效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • android实现获取有线和无线Ip地址的方法

    android实现获取有线和无线Ip地址的方法

    这篇文章主要介绍了android实现获取有线和无线Ip地址的方法,较为详细的分析了Android获取IP地址的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • Android AndBase框架实现多功能标题栏(一)

    Android AndBase框架实现多功能标题栏(一)

    这篇文章主要整理了Android AndBase框架学习笔记,本文主要使用AndBase实现多功能标题栏,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Android编写2048小游戏

    Android编写2048小游戏

    这篇文章主要为大家详细介绍了利用Android编写一个2048小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android APP集成新浪微博分享功能

    Android APP集成新浪微博分享功能

    这篇文章主要为大家详细介绍了Android APP集成新浪微博分享功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Android GridLayout使用案例详解

    Android GridLayout使用案例详解

    这篇文章主要介绍了Android GridLayout使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论