Ionic 使用config.xml来控制插件的安装方式

cl25kdpy  于 2022-12-25  发布在  Ionic
关注(0)|答案(1)|浏览(212)

我正在执行一个测试和Android应用程序建立。我想使用config.xml来操纵一些插件是如何安装的。目前,我正试图从被添加时,编译开始,但它的振动失败的工作

<platform name="android">
        <preference name="Scheme" value="http" />
        <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" />
        </edit-config>
        <custom-preference delete="true" name="android-manifest/uses-permission/[@android:name='android.permission.VIBRATE']" />
        <resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
        <allow-intent href="market:*" />
    </platform>
7gs2gvoe

7gs2gvoe1#

我不认为仅仅在config中添加一行代码就可以做到这一点。去年夏天我不得不删除一个权限,我不得不创建一个钩子并在prepare之后运行它。要做到这一点,请将以下内容添加到config.xml中:第一个月

(function () {
 'use strict';
 module.exports = function(ctx) {
if (ctx.opts.platforms.includes('android')) {
  const fs = require('fs');
  const gutil = require('gulp-util');
  const androidManifest = "platforms/android/app/src/main/AndroidManifest.xml";
  const androidManifestPermission = "<uses-permission android:name=\"android.permission.VIBRATE\" />"
  const androidJson = 'platforms/android/android.json';
  const androidJsonPermission =
      `{
          "xml": "<uses-permission android:name=\\"android.permission.VIBRATE\\" />",
          "count": 1
        },`;
  // Show which hook is running
  gutil.log(gutil.colors.yellow('Running HOOK:'), gutil.colors.cyan('removePermission'));

  const removeTextFromFile = (fileName, stringToRemove) => {
    fs.readFile( fileName, "utf8", function( err, data ) {
      if (err) {
        console.warn( err );
        return;
      }

      let result = data.replace(stringToRemove, "");

      fs.writeFile( fileName, result, "utf8", function( err ) {
        if (err) {
          return console.warn( err );
        }
      });
    });
  };
  removeTextFromFile(androidManifest, androidManifestPermission);
  removeTextFromFile(androidJson, androidJsonPermission);
}
};
}());

你可能需要稍微调整一下,医生可能会帮上忙:https://cordova.apache.org/docs/en/11.x/guide/appdev/hooks/

相关问题