Ionic項目打包Android在9版本以上不能進行HTTP通信問題

Ionic項目打包Android在9版本以上不能進行HTTP通信問題

原因

在Ionic開發中使用http請求請求後臺數據,在瀏覽器測試的時候非常成功!但是嘞,在真機測試的時候就會出現一些瑕疵,什麼瑕疵嘞,就是發現Android9及以上的真機在測試的時候總是顯示請求失敗!其實是因爲跨域問題,在瀏覽器調試中,使用代理可以向本機後臺發送請求;但是在真機調試中不存在跨域,所以把代理去掉,但正常的http請求卻過不去。也就是說,Android9以及以上的Android版本需要使用https通信,不支持http通信,但是有辦法!

解決辦法

在 platforms\android\app\src\main\res\xml\network_security_config.xml 文件中的代碼改成下邊形式:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

在這裏插入圖片描述

打開android的manifest.xml文件,在application標籤中添加 android:networkSecurityConfig="@xml/network_security_config"

android:networkSecurityConfig="@xml/network_security_config"

由於platform有時會remove掉重新add,所以每次都要去重新配network_security_config.xml就顯得特別麻煩,後來在ionic start myApp blank時發現ionic默認在myApp/config.xml裏已經把此配置提出來了:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

在這裏插入圖片描述

然後就可以了!哈哈哈!完美~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章