美文网首页
Flutter 报错 :Bad state: Insecure

Flutter 报错 :Bad state: Insecure

作者: 酒深巷子Ya | 来源:发表于2021-04-13 20:49 被阅读0次

Bad state: Insecure HTTP is not allowed by platform
错误状态:平台不允许不安全的HTTP请求

  • 原因
    IOS 和 Android 9.0 对网络请求做了一些限制,不能直接访问 Http 域名的地址。

iOS端解决方案

解决办法一:iOS,如果安装了Xcode,可以使用Xcode打开flutter中的iOS项目,在项目中进行如下配置:

image.png

解决方法二:在flutter项目中,文件夹iOS/Runner/info.plist中,做如下修改:

image.png

代码如下

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

安卓端解决方案:

  • 首先在android/main/res目录下创建xml文件夹,这个是用来存放xml文件的,方便资源的管理,如果已经存在可以忽略,在xml文件夹下创建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>
这段内容是:更改网络的安全配置,允许使用明码传输,原因是因为出于安全考虑,谷歌不允许使用明码传输。
  • 其次是在AndroidManifest.xml 中
    【路径为:android/app/src/main/AndroidManifest.xml】做如下配置,(1)设置network_security_config.xml文件路径(2)将cleartextTrafficPermitted属性设置为true


    image.png
  • 最后添加网络权限
    <uses-permission android:name="android.permission.INTERNET" />


    image.png

相关文章

网友评论

      本文标题:Flutter 报错 :Bad state: Insecure

      本文链接:https://www.haomeiwen.com/subject/aycflltx.html