如何通过cordova插件添加android:allowBackup =“false”

时间:2015-05-29 10:20:37

标签: android cordova android-manifest cordova-plugins

我正在开发Cordova Plugin,我想添加

  android:allowBackup="true"

进入AndroidManifest.xml,但我不知道如何在plugin.xml中指定它。

11 个答案:

答案 0 :(得分:7)

对我有用的配置编辑是:

<platform name="android">
    <edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
        <application android:allowBackup="false"/>
    </edit-config>
</platform>

答案 1 :(得分:4)

如果您正在编写需要在应用的AndroidManifest.xml中添加/编辑内容的插件,那么plugin.xml中内置了一些功能来执行此操作。对于问题示例,它应该是这样的:

<edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
    <application android:allowBackup="true" />
</edit-config>

Check out the docs for config-file and edit-config

答案 2 :(得分:3)

你必须通过钩子来做(下面是Ionic应用程序的一个例子):

在您的config.xml中添加一个钩子:

<platform name="android"> <hook type="before_plugin_install" src="hooks/androidBeforeInstall.js" />

在hooks文件夹中创建js文件androidBeforeInstall.js并在下面添加以下代码:

module.exports = function(ctx) {
  var fs = ctx.requireCordovaModule('fs'),
  path = ctx.requireCordovaModule('path'),
  xml = ctx.requireCordovaModule('cordova-common').xmlHelpers;

 var manifestPath = path.join(ctx.opts.projectRoot, 'platforms/android/AndroidManifest.xml');
 var doc = xml.parseElementtreeSync(manifestPath);
 if (doc.getroot().tag !== 'manifest') {
    throw new Error(manifestPath + ' has incorrect root node name (expected "manifest")');
 }

 doc.getroot().find('./application').attrib['android:allowBackup'] = "true";

 //write the manifest file
 fs.writeFileSync(manifestPath, doc.write({
    indent: 4
 }), 'utf-8');
};

答案 3 :(得分:3)

这是一个更简单的示例,但它需要cordova custom config插件。

<platform name="android">
  <preference name="android-manifest/application/@android:allowBackup" value="true" />
</platform>`

答案 4 :(得分:3)

@Muhammad Omar的

答案shared适用于 cordova-android <7 。但是 cordova-android> = 7

的情况发生了变化

https://cordova.apache.org/announcements/2017/12/04/cordova-android-7.0.0.html

所以您需要对其进行一些更改

cordova-android> = 7

<platform name="android">
    <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
        <application android:allowBackup="false"/>
    </edit-config>
</platform>

cordova-android <7

对我有用的配置编辑是:

<platform name="android">
    <edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
        <application android:allowBackup="false"/>
    </edit-config>
</platform>

答案 5 :(得分:0)

对于最新的cordova version 8.1.2,没有一个答案对我有用。以下是我的操作方式以及工作情况。同样,您也可以更新AndroidManifest.xml的任何其他配置。

    <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
        <application android:allowBackup="false" />
    </edit-config>

您完成了!

答案 6 :(得分:0)

为避免android应用恢复安装时的备份,请在config.xml中添加以下配置。

确保已定义xml名称空间。没有我,科尔多瓦的建设失败了。

通过添加以下内容解决。

<platform name="android">
    <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
        <application android:allowBackup="false" />
    </edit-config>
</platform>

答案 7 :(得分:0)

首先请确保您的外观如下:(要导入android)

false

然后在您的android部分

<widget id="com.myapp" version="0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android">

注意:此编辑配置部分可用于对AndroidManifest.xml进行许多更改

如果有人想知道的话,可以在以下部分添加此功能以实现与iOS类似的功能:

<platform name="android">
   ...
   ...
   <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
        <application android:allowBackup="false" />
    </edit-config>

答案 8 :(得分:0)

使用edit-config会中断插件,因此请谨慎使用并随后测试所有插件。

更多信息: https://issues.apache.org/jira/browse/CB-13514

不破坏插件的方法是使用以下命令(要求cordova-custom-config)

arguments[0].scrollIntoView({block: "center"});

答案 9 :(得分:0)

就我而言,我使用了插件cordova-custom-config

cordova plugin add cordova-custom-config

问题已经解决。

在config.xml中进行聚合

<platform name="android">
...
    <custom-preference name="android-manifest/application/@android:allowBackup" value="false" />
...
</platform>

cordova-custom-config-example

中的示例中查看插件的更多详细信息

guide中的andoid文档

答案 10 :(得分:0)

安卓

编辑"platforms/android/CordovaLib/AndroidManifest.xml"喜欢

 <manifest  xmlns:android="http://schemas.android.com/apk/res/android"  ...>
   // ... exiting conf directives ....

     <application android:allowBackup="false"/>
 </manifest>

或编辑"platforms/android/app/src/main/AndroidManifest.xml"

<application   // exiting attributes 
     android:allowBackup="false"
 > </application>