web-dev-qa-db-ja.com

Cordovaプラグインを介してAndroid:allowBackup = "false"を追加する方法

私は今Cordova Pluginを開発しています、追加したい

  Android:allowBackup="true"

AndroidManifest.xmlに入れますが、plugin.xmlで指定する方法がわかりません。

13
poordeveloper

私のために働いた構成編集は次のとおりでした:

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

2020年2月の編集:以下の@Shashank Agrawal forcordovaからの回答を参照してください-Android> = 7

回答 shared by @MuhammadOmarはcordova-Android <7で動作します。しかし、状況は変わりましたcordova-Android> = 7

https://cordova.Apache.org/announcements/2017/12/04/cordova-Android-7.0.0.html

だからあなたはそれを少し変更する必要があります

コルドバ-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>

コルドバ-Android <7

私のために働いた構成編集は次のとおりでした:

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

Androidアプリがインストール時にバックアップを復元しないようにするには、config.xmlにconfigを追加します。

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>
8
Venkat Kotra

アプリのAndroidManifest.xmlで何かを追加/編集する必要があるプラグインを作成している場合、これを行うための機能がplugin.xmlに組み込まれています。質問の例では、次のようになります。

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

config-fileとedit-configのドキュメントを確認してください

5
markdon

これはより簡単な例ですが、 cordova custom config プラグインが必要です。

<platform name="Android">
  <preference name="Android-manifest/application/@Android:allowBackup" value="true" />
</platform>`
4
Bala Clark

あなたはフックを介してそれをしなければなりません(以下はIonic app)の例です:

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
Arun Gopalpuri

まず、次のようになっていることを確認してください:( Androidをインポートするには)

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

次に、Androidセクション

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

注:この編集構成セクションを使用して、AndroidManifest.xmlに多くの変更を加えることができます

そして、誰かが疑問に思っている場合は、セクションの下にこれを追加することで、iOSと同様のことを実現できます。

<preference name="BackupWebStorage" value="none" />
2
Eli

最新の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>

完了です!

1
Vikasdeep Singh

Edit-configを使用するとプラグインが壊れるので、注意して使用し、後ですべてのプラグインをテストしてください。

詳細: https://issues.Apache.org/jira/browse/CB-13514

プラグインを壊さずに機能するのは、以下を使用することです(cordova-custom-configが必要です)

<platform name="Android">
    <custom-preference name="Android-manifest/application/@Android:allowBackup" value="false" />
1
spa900

私の場合、プラグインを使用しました 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 の例でプラグインの詳細を表示します

および ガイド のandoidのドキュメント

0
Leonardo Pineda