android - 从 Cordova plugin.xml 添加 android :name ="something" to AndroidManifest. xml "application"标签

标签 android cordova android-manifest cordova-plugins

我决定打开新问题,因为已经发布的问题都没有一个好的答案。

我需要更新 AndroidManifest.xml "from plugin.xml",以便 <application>标记具有以下属性,以及它已经具有的属性:

android:name="mypackage"

怎么做?

谢谢

最佳答案

我遇到了同样的问题,我使用了 Cordova 钩子(Hook)来完成这项工作。

首先,编辑您的 config.xml 文件以添加 Hook :

<platform name="android">
    <hook type="after_prepare" src="scripts/android_app_name.js" />
</platform>

创建一个名为 scripts/android_app_name.js 的文件(将其设置为可执行文件),然后在其中使用搜索/替换功能。它应该看起来像:

#!/usr/bin/env node

module.exports = function(context) {

  var fs = context.requireCordovaModule('fs'),
    path = context.requireCordovaModule('path');

  var platformRoot = path.join(context.opts.projectRoot, 'platforms/android');


  var manifestFile = path.join(platformRoot, 'AndroidManifest.xml');

  if (fs.existsSync(manifestFile)) {

    fs.readFile(manifestFile, 'utf8', function (err,data) {
      if (err) {
        throw new Error('Unable to find AndroidManifest.xml: ' + err);
      }

      var appClass = 'YOU_APP_CLASS';

      if (data.indexOf(appClass) == -1) {

        var result = data.replace(/<application/g, '<application android:name="' + appClass + '"');

        fs.writeFile(manifestFile, result, 'utf8', function (err) {
          if (err) throw new Error('Unable to write into AndroidManifest.xml: ' + err);
        })
      }
    });
  }


};

关于android - 从 Cordova plugin.xml 添加 android :name ="something" to AndroidManifest. xml "application"标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27550060/

相关文章:

java - Firebase 数据不断循环

jquery - 如何在适用于 Android 和 iOS 的 phonegap 应用程序中将所需页面的方向设置为横向和其他页面的纵向模式

html - 收集所有 Javascript、CSS 和图像以部署网站或应用程序?

安卓工具栏标题

java - 为什么我的 Activity 被停止?

java - Android:如何将文件写入内部存储

android - 是否可以在 Activity 的一个 <intent-filter> 中注册两个 Action

android - 如何从 Card.io Phonegap iOS 和 Android 中删除/隐藏 Paypal Logo ?

java - 在 Telegram 源崩溃后更改启动器 Activity

android - 如何显示GIF文件