【问题标题】:Ionic 3 app stopped making network requestIonic 3 应用程序停止发出网络请求
【发布时间】:2021-01-05 05:46:40
【问题描述】:

我不知道为什么不能进行 ajax 调用 我删除了 node_modules 然后做了:npm i 然后我删除了平台/android

并制作:离子科尔多瓦运行 android 网络仍然无法正常工作(在设备或模拟器上)

我已经切换到 master 分支,它没有受到影响,但仍然面临同样的问题

但它在 IOS 和 web 上运行良好

【问题讨论】:

    标签: android cordova ionic3


    【解决方案1】:

    我将Android的sdk升级到29,从sdk 28开始,你必须在节点Application的AndroidManifest.xml文件中添加属性这个属性:

    android:usesCleartextTraffic="true"

    因为我正在对 http 而不是 https url 进行 ajax 调用。

    【讨论】:

    • 但是,这种方法不安全,如果他控制主机,或者如果是cdn,我建议他启用SSL,他将其下载并打包到应用程序中。
    • @BastienBastien 我知道我应该这样做,但是如果我们迁移到 https,有些遗留的东西会破坏,不要问我为什么
    【解决方案2】:

    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 并且没有出现错误。

    祝你好运!

    【讨论】:

    • 感谢您的意见,但我已经使用了白名单插件,但没有用。由于我在自己的答案中提到的原因,我不得不将属性 usesClearTextTraffic 添加为 true
    猜你喜欢
    • 1970-01-01
    • 2015-08-11
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2020-09-16
    • 2017-07-23
    • 2017-01-20
    相关资源
    最近更新 更多