【问题标题】:Modify AndroidManifest.xml in ionic project修改ionic项目中的AndroidManifest.xml
【发布时间】:2019-10-21 11:32:59
【问题描述】:

我必须在我的 AndroidManifest.xml 中添加以下行:

<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

我在我的 project_path/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" />
            <network-security-config>
                <base-config cleartextTrafficPermitted="true">
                    <trust-anchors>
                        <certificates src="system" />
                    </trust-anchors>
                </base-config>
            </network-security-config>
        </edit-config>

但是当我执行ionic cordova build android时我的AndroidManifest.xml 没有被修改

【问题讨论】:

  • 但是为什么要添加完整的标签只需要将 android:networkSecurityConfig="@xml/network_security_config" 添加到应用程序标签中。其余的应该去 android xml 文件夹
  • 我必须在服务器上调用一个api,但它没有https协议,我看到了这个帖子:https://stackoverflow.com/questions/57433362/api-calls-made-in-ionic-4-app-not-working-on-android-device根据android中的http请求是受限访问
  • 你的api协议是http还是https?
  • 我的api协议是http
  • 你试过用android:usesCleartextTraffic="true"

标签: android angular cordova ionic-framework


【解决方案1】:

networkSecurityConfig 没有直接从 config.xml 加载其配置。它位于一个单独的 XML 文件中。 它来自ressources/android/xml/network_security_config.xml 文件(如config.xml 中的&lt;application android:networkSecurityConfig="@xml/network_security_config" /&gt; 状态行)

将以下内容放入 ressources/android/xml/network_security_config.xml:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <base-config cleartextTrafficPermitted="true">
    <trust-anchors>
      <certificates src="system" />
    </trust-anchors>
  </base-config>
</network-security-config>

然后运行

ionic cordova prepare

现在进入platforms/android/app/src/main/res/xml/network_security_config.xml,您会看到您的配置已相应更新。

【讨论】:

  • 我的 network_sercurity_config.xml 中有这个:``` localhost``
  • ```我只是用你的台词或类似的替换:&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;network-security-config&gt; &lt;domain-config cleartextTrafficPermitted="true"&gt; &lt;domain includeSubdomains="true"&gt;localhost&lt;/domain&gt; &lt;/domain-config&gt; &lt;base-config cleartextTrafficPermitted="true"&gt; &lt;trust-anchors&gt; &lt;certificates src="system" /&gt; &lt;/trust-anchors&gt; &lt;/base-config&gt; &lt;/network-security-config&gt;
  • 配置在运行ionic cordova prepare时按照你想要的方式更新?
  • 我的帖子对你有帮助吗?
  • 是的,当我运行 ionic cordova prepare 时,配置已更新,但我的应用程序仍然记录从我的 api 接收数据,所以我做了一个新的 https 服务器来欢迎它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多