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>
然後就可以了!哈哈哈!完美~