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方法便可加载成功。网络