关于cordova+vue打包apk文件无法访问数据接口

Posted heshuaiblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于cordova+vue打包apk文件无法访问数据接口相关的知识,希望对你有一定的参考价值。

作为一个cordova小白,我按照官方文档和网上资料完成了讲vue文件打包到cordova中并打包成apk文件,完成了一个简单app的制作,当我正陶醉于可以自己完成一个app的时候突然发现,我的app居然无法访问服务器数据,这时我疯狂地去找解决方案,然而可能是我的搜索能力太差了,一直没有找到解决方法,最后当我即将放弃的时候发现了一个方法,觉得它是比较靠谱的,果不其然,解决了我的问题。

出现这种原因是因为我安装的android sdk是属于高版本的,在高版本的android sdk中默认开启了对非加密的明文传输的保护,我们无法通过http网络请求的方式获取数据。

解决方案如下(取一即可):

1.  android sdk27及以上有这种限制,可以将android sdk降低到26版本。降低android版本可以通过命令cordova platform remove android  再 cordova platform add [email protected],当我们打包时候就会自动给我们下载安装对应版本。

2. 在目录project\platforms\android\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>

在project\platforms\android\app\src\main\AndroidManifest.xml文件中修改,修改内容如下

<?xml version="1.0" encoding="utf-8"?>
<manifest>
    <application android:networkSecurityConfig="@xml/network_security_config">
    </application>
</manifest>

3. 可以使用https调用数据接口

4.在AnroidManifest.xml中的application添加设置项:

<application android:usesCleartextTraffic="true">

此上方法任选一个应该可以解决这个问题。

 

以上是关于关于cordova+vue打包apk文件无法访问数据接口的主要内容,如果未能解决你的问题,请参考以下文章

cordova+vue 项目打包成Android(apk)应用

Cordova + vue 打包安卓(Android) apk

cordova混合App开发:Cordova+Vue实现Android APP开发 (打包及调试)

用Cordova把react app 打包成原生的iOS项目

VS2015要ApacheCordova项目如何打包apk和ipa

webapp的文件如何打包到私服