gpt4 book ai didi

android - 为什么 HTTP 流量的明文错误 ERR_CLEARTEXT_NOT_PERMITTED 持续存在?

转载 作者:行者123 更新时间:2023-12-02 13:33:31 25 4
gpt4 key购买 nike

我正在使用 Ionic 框架开发一个新应用程序,并使用 HttpClient 模块来处理 API 请求。

问题是我已经阅读并尝试将解决方案应用于:

  1. https://medium.com/@son.rommer/fix-cleartext-traffic-error-in-android-9-pie-2f4e9e2235e6
  2. https://forum.ionicframework.com/t/livereload-err-cleartext-not-permitted/163487
  3. Android 8: Cleartext HTTP traffic not permitted
  4. Why am I seeing net::ERR_CLEARTEXT_NOT_PERMITTED errors after upgrading to Cordova Android 8?
  5. How to fix 'net::ERR_CLEARTEXT_NOT_PERMITTED' in flutter
  6. Android Pie: WebView showing error for plain HTTP on some sites, even with usesClearTextTraffic="true"
  7. WebView showing ERR_CLEARTEXT_NOT_PERMITTED although site is HTTPS

但是我的应用程序在对 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>

使用安全加密协议(protocol) HTTPS 无效。该 API 只接受 HTTP。

最佳答案

更新 2019 年 12 月 ionic - 4.7.1

<manifest xmlns:tools=“http://schemas.android.com/tools”>

<application android:usesCleartextTraffic=“true” tools:targetApi=“28”>

请将以上内容添加到android的manifest.xml文件中

以前版本的 ionic

  1. 确保您的 config.xml 中有以下内容在 ionic 项目中:

    <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>
  2. 运行 ionic Cordova 构建 android。它在 Platforms 下创建 Android 文件夹

  3. 打开 Android Studio 并打开项目中存在的 Android 文件夹项目平台-android。等待几分钟,以便构建 gradle

  4. gradle build之后完成后,我们收到一些包含 minSdVersion 的错误在manifest.xml 。现在我们要做的就是删除 <uses-sdk android:minSdkVersion="19" />来自manifest.xml .

    确保将其从两个位置删除:

    1. 应用 → list → AndroidManifest.xml .
    2. CordovaLib → list → AndroidManifest.xml .

    现在再次尝试构建 gradle,现在构建成功了

  5. 确保应用程序 → list → Androidmanifest.xml 中的应用程序标记中有以下内容:

    <application
    android:networkSecurityConfig="@xml/network_security_config" android:usesCleartextTraffic="true" >
  6. 打开network_security_config (应用→资源→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 构建应用程序(构建 -- 构建 bundle/APK -- 构建 APK),现在您可以使用该应用程序,并且它在 Android Pie 中运行良好。如果您尝试使用 ionic Cordova build android 构建应用程序,它将覆盖所有这些设置,因此请确保使用 Android Studio 构建项目。

如果您安装了任何旧版本的应用程序,请卸载它们并尝试一下,否则您将出现一些错误:

App not Installed

关于android - 为什么 HTTP 流量的明文错误 ERR_CLEARTEXT_NOT_PERMITTED 持续存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56434698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com