【发布时间】:2021-01-05 05:46:40
【问题描述】:
我不知道为什么不能进行 ajax 调用 我删除了 node_modules 然后做了:npm i 然后我删除了平台/android
并制作:离子科尔多瓦运行 android 网络仍然无法正常工作(在设备或模拟器上)
我已经切换到 master 分支,它没有受到影响,但仍然面临同样的问题
但它在 IOS 和 web 上运行良好
【问题讨论】:
我不知道为什么不能进行 ajax 调用 我删除了 node_modules 然后做了:npm i 然后我删除了平台/android
并制作:离子科尔多瓦运行 android 网络仍然无法正常工作(在设备或模拟器上)
我已经切换到 master 分支,它没有受到影响,但仍然面临同样的问题
但它在 IOS 和 web 上运行良好
【问题讨论】:
我将Android的sdk升级到29,从sdk 28开始,你必须在节点Application的AndroidManifest.xml文件中添加属性这个属性:
android:usesCleartextTraffic="true"
因为我正在对 http 而不是 https url 进行 ajax 调用。
【讨论】:
Android 需要白名单插件 (cordova-plugin-whitelist) 才能在应用程序外部(向互联网)发出请求,您确定已包含它吗?我也曾经遇到过类似的问题,插件在我的config.xml中,但是,当我使用cordova@9.0.0添加平台android时没有检测到它。我的解决方案是将插件标签移动到配置中的其他位置。
如果您有任何疑问,请参阅此https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-whitelist/,以了解如何使用该插件。
这里的配置将导航到某处的白名单:
<allow-navigation href="mywebsite.com/coolpage.php" /> 以及此处将请求列入白名单的配置:<access origin="mywebsite.com/api.php" />
您可以通过检查日志来检查是否安装了白名单插件,当您添加平台时,请确保您看到installing cordova-plugin-whitelist 并且没有出现错误。
祝你好运!
【讨论】: