Android初级第十讲之WebView的故事

Posted 刘兆贤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android初级第十讲之WebView的故事相关的知识,希望对你有一定的参考价值。

Webview是谷歌提供一种加载网页的方式,随着H5的出现,越来越多的活动页面出现在Webview上,也出现React Native和Weex这样的H5框架。因此关于它,我们专门辟出来一节来讲讲。

缓存模式(5种)
LOAD_CACHE_ONLY:  不使用网络,只读取本地缓存数据
LOAD_DEFAULT:  根据cache-control决定是否从网络上取数据。
LOAD_CACHE_NORMAL: API level 17中已经废弃, 从API level 11开始作用同LOAD_DEFAULT模式
LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.
LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。
如:www.taobao.com的cache-control为no-cache,在模式LOAD_DEFAULT下,无论如何都会从网络上取数据,如果没有网络,就会出现错误页面;在LOAD_CACHE_ELSE_NETWORK模式下,无论是否有网络,只要本地有缓存,都使用缓存。本地没有缓存时才从网络上获取。
www.360.com.cn的cache-control为max-age=60,在两种模式下都使用本地缓存数据。

清除页面缓存的方式:

    /**
     * 清除WebView缓存
     * 为了页面加载速度,由h5主动清除,自身不主动
     */
    public void clearWebViewCache() 
        //清理Webview缓存数据库
        try 
            deleteDatabase("webview.db");
            deleteDatabase("webviewCache.db");
         catch (Exception e) 
            e.printStackTrace();
        
        //WebView 缓存文件
        File appCacheDir = new File(getFilesDir().getAbsolutePath() + "/webcache");

        File webviewCacheDir = new File(getCacheDir().getAbsolutePath() + "/webviewCache");

        //删除webview 缓存目录
        if (webviewCacheDir.exists()) 
            deleteFile(webviewCacheDir.getAbsolutePath());
        
        //删除webview 缓存 缓存目录
        if (appCacheDir.exists()) 
            deleteFile(appCacheDir.getAbsolutePath());
        
    

WebView缓存方式:

1、应用缓存

2、Dom缓存

3、数据库缓存

4、文件缓存

接入腾讯的浏览器内核:腾讯浏览服务--404

一般为减少系统内存和泄露危险,采用为webActivity开启新进程,两种方式android:process=":remote"代表归当前进程私有,只有两者可以互相访问;android:process="remote"代表公有进程,其他所有进程均可访问。

客户端调用h5失败,缺少一句代码(android2js,指安卓调用h5的js方法):

window['android2js'] = android2js

安卓调用js的方法:webview.evaluatejavascript("javascript:android2js()");

带参数:webview.evaluateJavascript("javascript:android2js(\\""params"\\")");

如果各位有问题,欢迎提出;后面有想法,再继续补充。

以上是关于Android初级第十讲之WebView的故事的主要内容,如果未能解决你的问题,请参考以下文章

第十讲:绑定(信道)

Stanford机器学习---第十讲. 数据降维

机器学习中使用的神经网络第十讲笔记

《上古天真论》第十讲文字版

10《JAVA从零到壹》第十讲:集合框架(文末有课后作业)

小甲鱼python视频第十讲(课后习题)