修改ionic项目中的AndroidManifest.xml

atmip9wb  于 2023-05-12  发布在  Android
关注(0)|答案(2)|浏览(191)

我必须在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>

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

ebdffaop

ebdffaop1#

networkSecurityConfig未直接从config.xml加载其配置。它在一个单独的XML文件中。它来自ressources/android/xml/network_security_config.xml文件(如config.xml中的<application android:networkSecurityConfig="@xml/network_security_config" />状态行)
在resources/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,你会看到你的配置得到了相应的更新。

of1yzvn4

of1yzvn42#

在Ionic 7中,它的工作原理有点不同。而不是将其写入config.xml,您应该将其写入cordova下的capcitor.config.ts/js:

const config = {

... 

  cordova: {
    preferences: {
      'android-minSdkVersion': '22',
      'android-compileSdkVersion': '29',
      'android-targetSdkVersion': '29',
      'android:requestLegacyExternalStorage': 'true',
    },
  },
};

相关问题