项目场景:
需要使用cordova把打包好的vue项目封装成apk
问题描述
打包好的项目,在浏览器中能够正常访问,但在cordova打包好的apk中,提示网络错误,百度之后发现Android 高版本默认不允许http,网上大部分都说的是:
在AnroidManifest.xml中的application添加设置项
<application android:usesCleartextTraffic="true">
在res的xml目录下,新建一个network_security_config.xml文件
文件内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在AnroidManifest.xml中的application添加指向该文件的设置项:
<application android:networkSecurityConfig="@xml/network_security_config">
但是我都尝试了,还是无法访问http请求,最后终于在谷歌找到一篇帖子,根据帖子内容解决了,下面是解决办法
解决方案:
1、打开cordova根目录下的config.xml
2、粘贴代码:
<platform name="android">
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<activity android:usesCleartextTraffic="true" />
</edit-config>
<!-- android:usesCleartextTraffic="true"是必须的 -->
</platform>
<!-- 跨域cors -->
<preference name="AndroidInsecureFileModeEnabled" value="true" />
然后重新 cordova build 生成apk就好了