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