zoukankan      html  css  js  c++  java
  • Android 开发学习进程0.19 webview 的使用

    Android 中的webview

    android 中的webview是可以在app内部打开HTML等的网页,不必再打开浏览器,有两种实现方法,即webviewclient webChromeclient 两种方法,如果仅仅是简单的点击和静态界面,直接使用第一种。

    注意事项

    一,开启网络权限,可能一项没有设置到最后的结果就是加载不出来,所以我们需要再manifist文件中设置权限
    <uses-permission android:name="android.permission.INTERNET"/>
    同时对于9.0以上如果不是https连接而是http的话,还要在application中设置如下属性,因为谷歌不建议在app中打开http的非安全链接。

    android:usesCleartextTraffic="true"     
    android:networkSecurityConfig="@xml/newtwork_security_config"
    

    其中 networksecurityconfig文件要在res下创建,测试华为手机没有这行webview是无法访问的,仅能显示空白。

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" overridePins="true" />
                <certificates src="user" overridePins="true" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    

    二、混合加载问题
    在部分web界面,会出现https界面但一部分资源是http,导致部分不能加载,安卓在21以后禁止了混合加载,需要手动开启,在webview使用websetting类获取属性,或者直接getwebsetting方法更改webview的属性

      if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP) {
                settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
            }
    

    还有可能的webview界面部分不显示的问题是没有打开JavaScript设置,即
    settings.setJavaScriptEnabled(true);
    最后使用webview的loadurl方法即可加载成功。

  • 相关阅读:
    1292
    explicit_defaults_for_timestamp
    比较好的平台工具
    git回退到指定版本的代码
    解决catalina.out文件过大的方法
    json字符串转化成对象列表数据
    Java LIST做批量分组切割
    Activiti数据库表结构
    MySQL修改数据库时区
    集合工具类的使用
  • 原文地址:https://www.cnblogs.com/baimiyishu/p/13423689.html
Copyright © 2011-2022 走看看