Ionic应用程序无法从Android设备上的远程API获取数据

时间:2019-09-25 13:12:36

标签: android cordova ionic-framework

因此,我正在使用API​​调用构建Ionic App,当我在浏览器中运行它并获取所有数据时,一切工作正常。

但是当我构建该应用程序(离子Cordova构建android)并在手机中安装.apk时,我没有任何数据,视图只是空的,我不知道为什么。

我遵循了发现here的指示,但仍然没有。

我什至按照此question中的说明安装了“ android-permissions ” cordova插件,但是当我在手机上安装该应用程序时,它说该应用程序不需要任何许可。

我迷路了,真的不知道为什么它不起作用。请帮助需要!!

有关该项目的信息

Created using "ionic start appName blank --type=angular"

Ionic Framework :

@ionic/angular 4.9.1

Ionic CLI :

5.4.1

Cordova CLI :

9.0.0

Cordova Platforms : 

android 8.1.0

谢谢

1 个答案:

答案 0 :(得分:0)

这可能是whitelisting,或者,如果您使用的是Android 9并且您的API不使用TLS,则可能是network security问题。

白名单

将标签<access origin="https://your-server.com" />添加到您的config.xml

网络安全

要允许Android 9设备访问http://(非TLS)API,需要附加的configuration。在Cordova应用中,执行以下步骤:

  1. 在项目根目录中创建一个名为network_security_config.xml的文件,其中包含以下内容:
    <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
        <domain-config cleartextTrafficPermitted="false">
      </domain-config>
    </network-security-config>
  1. 将此添加到您的config.xml中,以将新配置包含在Android清单中:
    <platform name="android">
        ...
        <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
            <application android:networkSecurityConfig="@xml/network_security_config" />
        </edit-config>
        <resource-file src="network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
        ...
    </platform>

重建Android平台(即ionic cordova platform rm androidionic cordova platform add android等),它应该可以在您的设备上运行。