WebView

作者: 钦_79f7 | 来源:发表于2019-12-18 11:24 被阅读0次

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的资源。

参考

相关文章

网友评论

      本文标题:WebView

      本文链接:https://www.haomeiwen.com/subject/tpnynctx.html