Android 无法使用 HTTP 超链接加载 Webview 页面,因为 ERR_CLEARTEXT_NOT_PERMITTED

Android Webview page could not be loaded with HTTP hyperlink because ERR_CLEARTEXT_NOT_PERMITTED

我正在开发一个 android 本机应用程序,我正在从 strings.xml 的 WebView 中加载一个 HTML 字符串,其中包含一些超链接文本。其中一个超链接具有 http url 并且未在 webView 中打开并抛出错误 ERR_CLEARTEXT_NOT_PERMITTED。我已经在我的应用程序中使用了 usesCleartextTraffic 设置,但仍然无法使用它。

AndroidManifest.xml

 <application
    android:name=".com.app"
    android:allowBackup="false"
    android:icon="@mipmap/ic_hp_launcher"
    android:networkSecurityConfig="@xml/network_security_config"
    android:roundIcon="@mipmap/ic_hp_launcher_round"
    android:supportsRtl="false"
    android:theme="@style/AppTheme"
    android:usesCleartextTraffic="true">

network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
    <trust-anchors>
        <!-- Trust user added CAs while debuggable only -->
        <certificates src="user" />
        <certificates src="system" />
    </trust-anchors>
</debug-overrides>

<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>

<domain-config cleartextTrafficPermitted="true">
    <!-- Make sure your URL Server here -->
    <domain includeSubdomains="true">https://xxxxxx.base.url</domain>
    <domain includeSubdomains="true">http://.xxxx.org</domain>
    <trust-anchors>
        <certificates src="user"/>
        <certificates src="system"/>
    </trust-anchors>
</domain-config>

UIClass.kt

//Enabling JS for allowing all hyperlinks
    binding.webView.settings.javaScriptEnabled = true
    binding.webView.settings.javaScriptCanOpenWindowsAutomatically = true

build.gradle

minSdkVersion 28
targetSdkVersion 30

如果我做错了,请告诉我。提前致谢。

我通过两个选项解决了这个问题。

选项 1:

我从 AndroidManifest.xml 文件中删除了一行

android:networkSecurityConfig="@xml/network_security_config" 

选项 2:

build.gradle 文件的 defaultConfig 列下添加了 http 遗留库作为

useLibrary 'org.apache.http.legacy'