问题
更新了Android Studio至3.6.1,修改Android targetSdkVersion为28,Cordova项目HTTP请求报错了
解决
由于 Android P(版本27以上) 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。
如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求。
- 下面介绍我的解决办法:
- res/xml下新建network_security_config.xml 文件,文件内容如下:
<?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>
- Androidmainfest.xml文件的application节点添加如下配置:
android:networkSecurityConfig="@xml/network_security_config"
当然还有其他解决办法
- 服务器接口使用HTTPS(推荐)
- targetSdkVersion 降级回到 27
- AnroidManifest.xml中的application节点添加如下配置:
<application android:usesCleartextTraffic="true">