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方法便可加載成功。網絡