美文网首页
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