所以我正在构建一个带有 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 9 并且您的 API 不使用 TLS,则可能是一个网络安全问题。
将标签
<access origin="https://your-server.com" />
添加到您的 config.xml
。
要允许 Android 9 设备访问
http://
(非 TLS)API,需要额外的 配置。在 Cordova 应用程序中,执行以下步骤:
network_security_config.xml
的文件,其中包含以下内容: <?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="false">
</domain-config>
</network-security-config>
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
等),它应该可以在您的设备上运行。
我面临着同样的问题,但我正在使用 ionic 6 和电容器。我已经安装了白名单插件(并进行了电容器所需的修改许可名单),但 Android 应用程序仍然无法访问服务器 api。请帮忙解决问题。