使用config.xml来控制如何安装插件



我正在执行测试和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>

我不认为你可以通过在配置中添加一行来做到这一点。去年夏天,我必须删除一个权限,我必须创建一个钩子,然后在prepare之后运行它。为此,将此添加到config.xml中:<hook src="customHooks/removePermissionHook.js" type="after_prepare" />

(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/

最新更新