zoukankan      html  css  js  c++  java
  • 关于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 android@6.3.0,当我们打包时候就会自动给我们下载安装对应版本。

    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">

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

  • 相关阅读:
    java,php,js;AES 互通加解密
    将本地代码上传github
    为什么我们做分布式使用Redis?
    Git服务器环境搭建(打造属于自己的存储库)
    Redhat6.5——解决yum功能不能正常使用
    数据库设计——评论回复功能
    nginx 配置信息
    Linux常用基础命令整理:关机命令、查看目录下文件命令等
    【Qt】QTabWidget 竖向 QTabBar横向
    Google BreakPad使用集
  • 原文地址:https://www.cnblogs.com/heshuaiblog/p/10792624.html
Copyright © 2011-2022 走看看