在Ionic v3.7.0上更改AndroidManifest.xml

Joh*_*Ace 3 android ionic-framework ionic2 ionic3 angular

我正在使用v3.7.0,我想在构建应用程序时更改AndroidManifest.xml.目前我已经尝试更改my-project-path/config.xml文件添加以下行:

选项a.

<widget>
    <preference name="android-manifest/application/activity/@android:windowSoftInputMode" value="adjustPan" />
</widget>
Run Code Online (Sandbox Code Playgroud)

选项b.

<widget>
     <preference name="android-windowSoftInputMode" value="adjustPan" />
</widget>
Run Code Online (Sandbox Code Playgroud)

然后我做:

$ ionic cordova build android
Run Code Online (Sandbox Code Playgroud)

我期待以下变化my-project-path/platform/android/AndroidManifest.xml:

<manifest>
    <application>
        <activity android:windowSoftInputMode="adjustPan">
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

但是我得到了与没有添加首选项设置相同的结果:

<manifest>
    <application>
        <activity android:windowSoftInputMode="adjustResize">
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

如何将所需效果应用于AndroidManifest.xml?

谢谢!

Joh*_*Ace 10

我找到了怎么做.如果你的Cordova版本高于6.4.0,你可以使用标签<edit-config>(http://cordova.apache.org/docs/en/7.x/plugin_ref/spec.html#edit-config),我想如果你是使用最新版本的Ionic可能你会有一个高于6.4.0的Cordova版本(我有7.1).

因此,我想要进行所需更改的方法必须my-project-path/config.xml按如下方式设置文件:

<widget xmlns:android="http://schemas.android.com/apk/res/android">
  <platform name="android">
    <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity">
      <activity android:windowSoftInputMode="adjustPan" />
    </edit-config>
  </platform>
</widget>
Run Code Online (Sandbox Code Playgroud)

检查窗口小部件是否具有新属性.

当我构建Android版本时,这个更改清单my-project-path/platform/android/AndroidManifest.xml看起来像这样:

<manifest>
    <application>
        <activity android:windowSoftInputMode="adjustPan">
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)