Android 9上的ERR_CLEARTEXT_NOT_PERMITTED,允许域明文



在Android 10设备上,我在http服务器上的webview中收到ERR_CLEARTEXT_NOT_PERMITTED错误,但仅在某些页面上,尽管我使用network_security_config来允许域。我只能通过使用打开所有域来解决这个错误。我该如何修复此问题,以便只允许我的域,而不接收错误,但不使用?

Logcat:

07:54:09.004 com.myserver.myapp D/myapp: Webview.onPageStarted called on http://myserver.com/myapp/index.php?view=discrete
07:54:09.232 com.myserver.myapp I/myapp: onPageFinished called.
07:54:15.938 com.myserver.myapp D/myapp: Webview.onPageStarted called on http://myserver.com/myapp/index.php?view=about
07:54:15.958 com.myserver.myapp I/myapp: onReceivedError called.
07:54:15.958 com.myserver.myapp I/myapp: Web Load Error:net::ERR_CLEARTEXT_NOT_PERMITTED
07:54:16.012 com.myserver.myapp I/myapp: onPageFinished called.

网络安全配置xml:

<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
<domain includeSubdomains="true">myserver.com</domain>
</domain-config>
<!-- Want to delete this for better security--> 
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>

根本原因是为第三方广告内容(谷歌广告(提供服务的javascript没有使用https。

已向onReceivedError添加代码,以记录导致问题的URL。。。

public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
Log.i(TAG, "onReceivedError called for URL "+ request.getUrl().toString());
}


最新更新