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

此上方法任選一個應該可以解決這個問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM