相信很多在android8.0之前很正常,跑到p上数据都无法加载出来,忽然就懵逼了,因为google在android p为了安全起见,已经明确规定禁止http协议额,但是之前很多接口都是http协议啊,怎么解决呢?
下面介绍四种方法:
1.使用https,当然这是最好的解决方式,也是比较复杂的,因为之前很多接口都是http协议的,不可能一个个替换啊,可以留待空余时间慢慢修改.
2.target降低至27,这也是一个方法,可以暂解燃眉之急,因为在target27之前是没有对http协议做过限制的,但是后期会出现什么问题,还有未可知.
3.允许使用http,你可以禁止,但我也可以让他允许啊,既然前两个方法都比较差,那我就推荐第三种方法,下面请看:
在res目录下创建xml目录,然后随便创建一个.xml文件,里面内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在AndroidManifest.xml文件下加上:
android:networkSecurityConfig="@xml/文件名"
<application
android:testOnly="false"
android:name=".base.BaseApplication"
android:allowBackup="true"
android:configChanges="orientation|keyboardHidden"
android:networkSecurityConfig="@xml/文件名"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute"
tools:replace="android:icon,android:label,android:theme,android:allowBackup,android:name">
4.在AndroidManifest.xml文件中的application节点中,配置:
android:usesCleartextTraffic="true"