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>

在这里插入图片描述

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

posted @   叫我+V  阅读(1203)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示