Dan*_*ols 2 https android http android-9.0-pie
这是在Android P上使用支持库版本28.0.0-rc01.
我已根据几个SO帖子关注此问题的说明/解决方案:
如何解决Android P DownloadManager停止"不允许使用明文HTTP流量到127.0.0.1"?
Android 8:不允许使用Cleartext 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">
Run Code Online (Sandbox Code Playgroud)
我试过这个包括'usesCleartextTraffic',只是'networkSecurityConfig'和两者的组合.
这是相关的network-security-config
<?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>
Run Code Online (Sandbox Code Playgroud)
请注意,我已经尝试过使用和不使用'trust-anchors'.我确实有AndroidManifest和network-security-config以及调试版本.但是,两者都具有相同的设置(除系统外,debug还允许用户证书).
我还通过检查logcat来验证正在读取安全策略.在这一点上,我感到茫然,因为它似乎没有被尊重.
任何帮助,将不胜感激.
出于某种原因,即使设置几乎相同,调试AndroidManifest和network-security-config也会导致问题 - 唯一的区别是调试版本也允许用户生成证书.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:networkSecurityConfig="@xml/network_security_config"
tools:targetApi="n" />
</manifest>
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<base-config cleartextTrafficPermitted="true" >
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
<certificates src="system" />
</trust-anchors>
</base-config>
</debug-overrides>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
删除调试AndroidManifest.xml和network_security_config.xml文件解决了该问题.我仍然不确定为什么会这样,但我们不再需要调试清单,所以现在就这样做.
小智 6
我只有:
android:usesCleartextTraffic="true"
Run Code Online (Sandbox Code Playgroud)
在清单中并删除network_security_config.xml
。这似乎有效!
归档时间: |
|
查看次数: |
5883 次 |
最近记录: |