我正在使用Ioonic-framework开发一个新的应用程序,并且正在使用HttpClient模块来处理API请求。
问题是我已阅读并尝试将解决方案应用于:
但是我的应用程序在查询API时仍然抛出此错误。
这是我文件的详细信息:
位于 / ,位于 config.xml :
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.example" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
...
<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"/>
<application android:usesCleartextTraffic="true" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
...
</widget>
位于 / resources / android / xml / , network_security_config.xml :
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
使用安全加密的协议HTTPS是无效的。该API仅允许使用HTTP。
答案 0 :(得分:0)
确保在Ionic Project的config.xml
中具有以下内容:
<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" />
<application android:usesCleartextTraffic="true" />
</edit-config>
运行离子Cordova构建android。它在Platforms下创建Android文件夹
打开Android Studio并打开项目中存在的Android文件夹 项目平台Android。静置几分钟,以便建立gradle
gradle build
完成后,我们在将minSdVersion
包含在manifest.xml
中时遇到了一些错误。
现在,我们要做的就是从<uses-sdk android:minSdkVersion="19" />
中删除manifest.xml
。
确保将其从两个位置都删除:
AndroidManifest.xml
。AndroidManifest.xml
。现在尝试再次构建gradle,现在可以成功构建
确保在App→清单→Androidmanifest.xml
的Application标签中具有以下内容:
<application
android:networkSecurityConfig="@xml/network_security_config" android:usesCleartextTraffic="true" >
打开network_security_config
(应用程序→res→xml→network_security_config.xml
)。
添加以下代码:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">xxx.yyyy.com</domain>
</domain-config>
</network-security-config>
此处xxx.yyyy.com
是HTTP API的链接。确保在URL之前不包含任何Http。
注意:现在使用Android Studio来构建应用程序(构建-Build Bundle's / APK-Build APK),现在您可以使用该应用程序了,它在Android Pie中可以正常工作。如果您尝试使用ionic Cordova build android来构建应用程序,它将覆盖所有这些设置,因此请确保使用Android Studio来构建Project。
如果您安装了任何较旧的应用程序版本,请卸载它们并尝试一下,否则将出现一些错误:
未安装应用
答案 1 :(得分:0)
确保在Ionic Project的config.xml中具有以下内容:
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:usesCleartextTraffic="true" android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
2。在/ resources / android / xml /中,network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true"/>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
<domain includeSubdomains="true">www.apiurl.com</domain>
</domain-config>
</network-security-config>
请注意不要在域网址中添加http
在ionic 4 http api的调用上为我完美地工作