关于Flutter 真机调试下无法访问网络资源的问题
首先,对于低于android 9的版本,我们只需要在manifest中添加以下权限即可:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
但是,对于android9 以上的机型,这样的方法并不能完全有效,必须要提供一个network_security_config
首先我们在我们的res下创建一个xml包,并新建一个xml资源文件’network_security_config.xml’,并写入内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在minifext的application中加一条属性:
android:networkSecurityConfig="@xml/network_security_config"
重新build app即可
当然,如果你的API最低版本低于24,这种方法会有警告,不影响运行,但是提示还是不舒服,暂时不知道除了调高最低版本以外还有什么方法,希望能指正。
|