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

问题描述 投票:0回答:2

所以我正在构建一个带有 API 调用的 Ionic 应用程序,当我在浏览器上运行它并获取所有数据时,一切正常。

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

我按照我在here找到的说明进行操作,但仍然没有任何结果。

我什至安装了“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

谢谢你

android cordova ionic-framework
2个回答
1
投票

这可能是一个白名单,或者,如果您使用的是 Android 9 并且您的 API 不使用 TLS,则可能是一个网络安全问题。

白名单

将标签

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

网络安全

要允许 Android 9 设备访问

http://
(非 TLS)API,需要额外的 配置。在 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 android
ionic cordova platform add android
等),它应该可以在您的设备上运行。


0
投票

我面临着同样的问题,但我正在使用 ionic 6 和电容器。我已经安装了白名单插件(并进行了电容器所需的修改许可名单),但 Android 应用程序仍然无法访问服务器 api。请帮忙解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.