前言:
我最近升级了flutter2.0以后,运行项目报错如下:
Bad state: Insecure HT TP is not allowedby platform
以上报错原因是:ios和安卓在新版中会要求http的地址必须为https,即:不支持http的地址访问
实际开发中可能有些测试请求需要访问http类的地址,那怎么处理呢?
只需要通过对android和ios的简单配置即可实现(特别提示:由于安全的原因还是建议正式使用中使用https的形式访问)
特别说明:以下方法我也是通过搜索得到的解决方案(在这里感谢各位技术大佬热情的分享),遂将方法记录下来分享给更多的有需要的技术员...
以下说明均以vscode为说明,如果你是使用的其他开发工具,路径是一直的,按路径即找到。
苹果IOS
使用vscode打开项目,找到 ios/Runner/Info.plist,在Info.plist中有很多其他的配置参数,请勿删除。
只需要在根<dict></dict>中添加如下代码即可。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
添加截图:
安卓android
【步骤1】
使用vscode打开项目,找到android/app/src/main/AndroidManifest.xml,在application下添加
android:usesCleartextTraffic="true" android:networkSecurityConfig="@xml/network_security_config"
注意,是在application结束的>之前添加,如图:
【步骤2】
2.1>>>>>>>在 android/app/src/main/res 下新建 xml 文件夹。
2.2>>>>>>>在该文件里创建 network_security_config.xml的文件
2.3>>>>>>>在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>
如图所示: