您的当前位置:首页正文

如何让Android WebView访问更快

来源:华拓网

其实http协议有自身的缓存机制,android这边通过简单配置就可以实现,缓存一般说的都是对web静态资源缓存,如html,js,css,png,jpg,gif等;

缓存配置主要是web前端和后台设置,

缓存配置主要是web前端和后台设置,

缓存配置主要是web前端和后台设置,

Android WebView自身缓存

Android WebView缓存改进

通过拦截所有静态资源请求,然后对其改进,通过覆盖WebViewClient下面的方法:


@Override

public WebResourceResponse shouldInterceptRequest(WebView view, String url){

return null;

}


@TargetApi(Build.VERSION_CODES.LOLLIPOP)//21后调用

@Override

public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request){

return null;

}

然后拦截所有的静态资源,把静态资源放到本地磁盘,这样就可以自己控制缓存了,对于缓存分为两种模式

  • 普通模式
  • 强制模式

强制模式是忽略缓存字段,强制缓存静态资源,如js,css等。如果静态资源要更新,那就让其修改静态资源链接,如加md5值,加版本等,一般打包工具都有这个功能。这块对于html文件需要走普通模式,因为有些html文件名称不会改变,如index.html

基本流程图

输入图片说明

代码实现

两个步骤就可以使用:

  • 引入库

compile 'ren.yale.android:cachewebviewlib:0.5.1'

  • 将 WebView 改为ren.yale.android.cachewebviewlib.CacheWebView

其他,为了让访问加速也可以通过其它方式

  • 第三方浏览器内核,如腾讯X5

优点:内核级加速,比系统自带的浏览器内核快

缺点:完全依赖第三方浏览器,灵活性差些

优点:并发,缓存和局部更新,速度很快

缺点:配置比较复杂,需要服务器大量修改