最近在使用Flutter的插件web_view的時候,出現了打開http網頁不能正常訪問,但是可以訪問https的網頁,經過一陣搜索,找到了答案
原因
IOS和Android 9.0+對非HTTPS請求做了一些限制,不能直接訪問Http請求,在Android中會出現net:ERR_CLEARTEXT_NOT_PERMITTED的錯誤
解決辦法
在清單文件\android\app\src\main\AndroidManifest.xml的Application的標簽里面設置networkSecurityConfig屬性,代碼如下:
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest ... > 3 <application android:networkSecurityConfig="@xml/network_security_config"> 4 <!-- ... --> 5 </application> 6 </manifest>
如下圖所示:
在src/res/xml下面創建network_security_config.xml,配置如下所示:
1 <?xml version="1.0" encoding="utf-8"?> 2 <network-security-config> 3 <base-config cleartextTrafficPermitted="true"> 4 <trust-anchors> 5 <certificates src="system" /> 6 </trust-anchors> 7 </base-config> 8 </network-security-config>
如下圖所示: