Flutter web_view不能访问http的解决办法

最近在使用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>

如下图所示:

 

posted @ 2021-03-09 16:29  骑蝴蝶飞  阅读(974)  评论(0)    收藏  举报