WebView 内核 Chrome
Android 4.4 KitKat 版本开始讲WebView的实现从WebKit转为Chromium实现。
OS Version | Chrome Version |
---|---|
4.4 | 30.0.0.0 |
4.4.3 | 33.0.0.0 |
L | 36.0.0.0 |
备注:关于Vue 2.0 仅 Chrome 32 版本以上的才会正常支持。
Method
pauseTimers、onPause、resumeTimers、onResume
- pauseTimers(), onPause() 停止解析,javascript执行等操作.区别是 onPause() 只作用于调用它的WebView,而 pauseTimers() 作用于当前应用中所有的WebView
- resumeTimers(), onResume() 恢复解析,javascript执行等操作.区别是 onResume() 只作用于调用它的WebView,而 resumeTimers() 作用于当前应用中所有的WebView
webView.getSettings().setDomStorageEnabled(true);
设置WebView开放LocalStorage的功能给H5做持久化存储
HTML5 Web Storage主要有:
- sessionStorage: 会话 (session) 级别的数据存储,会话结束后,相关的数据就会被清除掉。
- localStorage: 用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
作为 HTML5 标准的一部分,绝大多数的浏览器都是支持 localStorage 的,但是鉴于它的安全特性(任何人都能读取到它,尽管有相应的限制,将敏感数据存储在这里依然不是明智之举),Android 默认是关闭该功能的。
web storage和cookie的区别:
- Web Storage的概念和cookie相似,区别是它是为了更大容量存储设计的。Cookie的大小是受限的,并且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用。
- 除此之外,Web Storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。
- 但是Cookie也是不可以或缺的:Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生
webView.getSettings().setMixedContentMode()
设置WebView支持加载混合资源的模式,API Call Required 21
/**
* Configures the WebView's behavior when a secure origin attempts to load a resource from an
* insecure origin.
*
* By default, apps that target {@link android.os.Build.VERSION_CODES#KITKAT} or below default
* to {@link #MIXED_CONTENT_ALWAYS_ALLOW}. Apps targeting
* {@link android.os.Build.VERSION_CODES#LOLLIPOP} default to {@link #MIXED_CONTENT_NEVER_ALLOW}.
*
* The preferred and most secure mode of operation for the WebView is
* {@link #MIXED_CONTENT_NEVER_ALLOW} and use of {@link #MIXED_CONTENT_ALWAYS_ALLOW} is
* strongly discouraged.
*
* @param mode The mixed content mode to use. One of {@link #MIXED_CONTENT_NEVER_ALLOW},
* {@link #MIXED_CONTENT_ALWAYS_ALLOW} or {@link #MIXED_CONTENT_COMPATIBILITY_MODE}.
*/
根据文档注释可知,在4.4- 默认下是开启混合模式的。但是由于其存在安全隐患,在5.0+默认关闭了混合模式的加载,并且Google强烈不建议开启混合模式。即HTTPS路径下访问Http的资源。
网友评论