Cordova如何支持Android 7.0引入的Network Security Config?

时间:2018-07-04 04:57:45

标签: android cordova

Android 7.0引入了网络安全配置以支持使用自定义CA,但是Cordova如何支持它?我从Cordova的文档中找不到任何提示。

2 个答案:

答案 0 :(得分:7)

您可以通过在edit-config的Android平台上添加config.xml标签来实现此目的,Cordova Android Plugin v7.0支持。

您将需要使用Google中的示例创建为本地Android应用程序创建的Network Security Config文件。

下一步,在Cordova config.xml中,您可以使用edit-config标签将networkSecurityConfig属性添加到Application标签。然后,您只需要将Network Security Config文件作为应用程序的资源复制到res/xml目录。

这是一个在您的应用程序config.xml中外观的示例

...
<platform name="android">
    <edit-config xmlns:android="http://schemas.android.com/apk/res/android" file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
        <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>
...

答案 1 :(得分:0)

詹姆斯answered的工作原理是什么,但是如果您有一个无法指定域的应用程序,或者想要允许所有域的明文流量,我们需要在{{1}中设置{% if request.user == user_own %} <a href="{% url 'update-page' user.channel_name %}"> <button class="btn btn-light btn-flw">profile setting </button> </a> {% else %} <a href="{% url 'follow-unfollow' user_own.id follow_state%}"> <button class="btn btn-light btn-flw">{{follow_state}}</button> </a> {% endif %} }在android:usesCleartextTraffic="true"标签中。

因为,在Android P(版本9,API级别28)中,默认禁用明文支持。为此,只需在platforms/android/app/src/main/AndroidManifest.xml内的<application>中添加以下内容:

config.xml