这是在使用支持库版本 28.0.0-rc01 的 Android P 上。
我已根据几个 SO 帖子遵循此问题的说明/解决方案:
如何解决 Android P DownloadManager 因“不允许到 127.0.0.1 的明文 HTTP 流量”而停止?
和其他几个人一起。
问题是,即使 network-security-config base-config 将此值设置为 true,当我检查 NetworkSecurityPolicy.isCleartextTrafficPermitted 时,它也会返回 false。当导航到 WebView 中的非 https 页面时,这会导致 ERR_CLEARTEXT_NOT_PERMITTED 错误。
这是 AndroidManifest 的片段
<application
...
android:supportsRtl="true"
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="true">
我已经尝试过使用“usesCleartextTraffic”、“networkSecurityConfig”和两者的组合。
这是相关的网络安全配置
<?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>
请注意,我已经尝试过使用和不使用“信任锚”。我确实有一个 prod AndroidManifest 和 network-security-config 以及一个调试版本。但是,两者都具有相同的设置(除系统外,调试还允许用户证书)。
我还通过检查 logcat 验证了正在读取安全策略。在这一点上,我很茫然,因为它似乎没有得到尊重。
任何帮助,将不胜感激。