安卓10webview无法联网 但是安卓8却可以打开新的网页 ERR_CLEARTEXT_NOT_PERMITTED network_service_network_delegate
问题的提出
我在安卓用WebView打开h5界面的时候,发现想跳转打开一个新的页面出现那问题,直接显示网路无连接,因为之前没有使用,也就没有太关注。但是今天写到一个需求必须要打开新的界面,这就困到到我了。
平时我是在安卓10的手机上调试的,但是有时候偶尔在一个安卓8的手机上调试,发现能打开新的网页。打开网页的时候在控制台会报错
[ERROR:network_service_network_delegate.cc(243)] final url http://www.baidu.com/ error_code: -29
我去网上搜了下 发现解决方案并不适用。
问题解决
然后我就用最原先的webview来打开,哦豁发现报错
net::ERR_CLEARTEXT_NOT_PERMITTED
报错这个,奈斯啊。我记得这个错误似曾相识,我记得啊,瞬间开心起来。网上的解决方案是在
AndroidMainifest.xml 里面的 appliction 里面添加
android:usesCleartextTraffic="true"
我打开一看,咦我已经添加了啊,为什么还会有这个错误呢。
这时候我的目光转移到了这行代码的下一行
android:networkSecurityConfig="@xml/network_security_config"
这是之前报错配置的一个文件,好像也是因为什么网络问题才添加的这个。
我们来看看这个xml里面写了什么
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">example.com</domain>
<pin-set expiration="2018-01-01">
<pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
<!-- backup pin -->
<pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
</pin-set>
</domain-config>
</network-security-config>
大概呢就是一个安全的配置。
我觉得一定是这里的问题,把
android:networkSecurityConfig="@xml/network_security_config"
这行代码删了之后,好了,可以打开网页了。问题解决。
以至于安卓8为啥可以,安卓10不可以 可能10的时候更新了配置吧。我也不太清楚。有清楚的小可爱可以留言告诉我哦~
后续
有同学说,我一定要使用这个xml配置咋办呢,建议可以试一试在这个xml里面添加一个base-config试试
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
记录学习过程中问题,手打不易。帮助到你点个赞吧~~~~~