Bad state: Insecure HTTP is not allowed by platform
錯誤狀態(tài):平臺不允許不安全的HTTP請求
- 原因
IOS 和 Android 9.0 對網(wǎng)絡(luò)請求做了一些限制酿愧,不能直接訪問 Http 域名的地址妻顶。
iOS端解決方案
解決辦法一:iOS操刀,如果安裝了Xcode尤筐,可以使用Xcode打開flutter中的iOS項目瓤球,在項目中進(jìn)行如下配置:
解決方法二:在flutter項目中嘹履,文件夾iOS/Runner/info.plist中漏峰,做如下修改:
代碼如下
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
安卓端解決方案:
- 首先在android/main/res目錄下創(chuàng)建xml文件夾情竹,這個是用來存放xml文件的障陶,方便資源的管理滋恬,如果已經(jīng)存在可以忽略,在xml文件夾下創(chuàng)建network_security_config.xml文件抱究,內(nèi)容如下:
<?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>
這段內(nèi)容是:更改網(wǎng)絡(luò)的安全配置恢氯,允許使用明碼傳輸,原因是因為出于安全考慮鼓寺,谷歌不允許使用明碼傳輸勋拟。
-
其次是在AndroidManifest.xml 中
【路徑為:android/app/src/main/AndroidManifest.xml】做如下配置,(1)設(shè)置network_security_config.xml文件路徑(2)將cleartextTrafficPermitted屬性設(shè)置為true
-
最后添加網(wǎng)絡(luò)權(quán)限
<uses-permission android:name="android.permission.INTERNET" />