原因
Android 9
的操作系统,原来在Android 8
进一步加强系统安全权限的基础上,Android
又限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉,目前网络访问基本都从原来的http
替换为了https
也是加强安全性的一种表现。既然知道原因了,那就有相对应的解决方案。
1、在打包时进行声明,不再对
http
请求进行限制;
2、通知客户将客户端和服务器端的请求统一替换为https
;
3、把targetSdkVersion
版本降到27
以下(Android8.0
及以下)。
解决方案
后两点不再赘述,说说第一点是怎么声明配置的吧。
1、在android/app/src/main/res
目录下新建一个xml
目录,在xml
目录中新建network_security_config.xml
文件 ,编辑文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
2、在android/app/src/main/
目录下的AndroidManifest.xml
文件中application
标签内声明文件,如下:
<application android:hardwareAccelerated="true"
android:icon="@mipmap/icon"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"--此行为添加内容
android:supportsRtl="true">
</application>
网友评论