Android 开发学习进程0.19 webview 的使用

Android 中的webview

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

注意事项

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

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>

2、混合加载问题
在部分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方法便可加载成功。网络

相关文章
相关标签/搜索