有人可以帮我吗?我在Android应用中使用WebView
compileSdkVersion 29
buildToolsVersion "29.0.0"
minSdkVersion 16
targetSdkVersion 29
我在AmdroidManifest中拥有配置https,并创建了一个配置文件,但是没有任何变化,但我得到了明文错误:
(net :: ERR_CLEARTEXT_NOT_PERMITTED)
@ xml / network_security_config
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">www.mydomaine.com</domain>
</domain-config>
</network-security-config>
AndroidManifest.xml
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:hardwareAccelerated="true"
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
WabView类
public void LoadWeb() {
webView = (WebView) findViewById(R.id.webview_test);
webView.getSettings().setAppCacheEnabled(false);
webView.clearCache(true);
webView.reload();
webView.getSettings().setJavaScriptEnabled(false);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.loadUrl("https://www,mydomaine.com");
swipe.setRefreshing(true);
webView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
webView.loadUrl("file:///android_asset/www/error.html");
}
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//Hide the SwipeReefreshLayout
swipe.setRefreshing(false);
}
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError er) {
handler.proceed();
}
});
}
答案 0 :(得分:0)
明文在android 9中被禁用 所以必须增加网络安全性
添加具有以下内容的src \ main \ res \ xml \ network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
然后通过设置android:networkSecurityConfig属性在AndroidManifest.xml中注册策略文件。
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...
</application>
答案 1 :(得分:0)
将此添加到应用程序标记中的清单中
android:usesCleartextTraffic="true"