我需要允许所有HTTP用于代码中的所有请求。
该代码在apk的调试和发布模式下运行良好,但当我将其作为bundle.aab 上传到Google play时,它就不起作用了
1-我创建了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>
2-添加到AndroidManifest/应用程序
<application
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
......
>
3-将元数据添加到应用程序
<application
......>
.....
<meta-data android:name="io.flutter.network-policy"
android:resource="@xml/network_security_config"/>
</application>
4-添加权限
<uses-permission android:name="android.permission.INTERNET"/>
你应该使用https,但如果你仍然想使用http协议,那么在iOS中的Info.plist文件中添加以下内容:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
同样对于android,在AndroidManifest.xml文件中添加此条目:
<application
...
android:usesCleartextTraffic="true">
...
</application>
您要调用的是特定的域吗?
如果您知道可能使用的域,可以尝试添加<domain-config>
标记。如果你想强制系统只使用安全连接,这里有一节关于Android文档。
但您可以尝试更改其中的一些值,看看禁用这些强制项是否可以解决您的问题。
试试这样的东西。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">network.domain.com</domain>
</domain-config>
</network-security-config>
但这只适用于Android。