Flutter中WebView无法打开HTTP站点:解决net::ERR_CLEARTEXT_NOT_PERMITTED错误
嘿,我刚好碰到过这个问题,你遇到的net::ERR_CLEARTEXT_NOT_PERMITTED错误其实是Android系统的安全限制在搞鬼,别担心,新手遇到这个很正常,我来给你一步步解决:
解决Flutter WebView无法加载HTTP PHP网站的问题
首先得搞明白为啥会报错:从Android 9(API 28)开始,系统默认不让应用使用明文的HTTP流量,而你的PHP网站用的是http://开头的地址,所以直接被系统拦截了请求。
下面给你两种解决办法,按需选择:
方法一:快速允许明文流量
你代码里注释了usesCleartextTraffic="true",但这个配置得写在Android的原生配置文件里,不是Flutter代码中:
- 打开你的Flutter项目,找到路径:
android/app/src/main/AndroidManifest.xml - 找到里面的
<application>标签,给它加上android:usesCleartextTraffic="true"属性,修改后大概是这样:
<application android:name="io.flutter.app.FlutterApplication" android:label="你的应用名称" android:icon="@mipmap/ic_launcher" android:usesCleartextTraffic="true"> <!-- 这里是其他原有配置,不用修改 --> </application>
- 重新运行你的Flutter应用,应该就能正常加载那个PHP网站了。
方法二:改用HTTPS协议(更推荐)
如果你的服务器支持,最好把PHP网站升级到https://协议。这样不仅能解决这个错误,还更符合现代应用的安全标准,同时不用修改任何Android配置,也能提升用户数据的安全性。
额外小检查
你代码里的WebView配置其实没啥问题:withJavascript: true、withLocalStorage: true这些都是加载网页需要的正确设置。另外也可以确认下服务器的80端口没被防火墙挡住,确保你的手机能正常访问目标网站地址。
内容的提问来源于stack exchange,提问作者Akash Agarwal
相关产品推荐
相关产品推荐

