仅安装一个平台的cordova插件

36
我们想要安装com.blackberry.app插件(http://plugins.cordova.io/#/package/com.blackberry.app)到我们的(cordova 3.4.0 CLI)项目中。如果我尝试“cordova plugin add com.blackberry.app”,它会为android和blackberry10平台都安装插件,由于这个原因,android应用程序崩溃了。我尝试通过plugman仅为blackberry10平台安装此插件,但功能无法正常工作[虽然plugman表示已成功安装]。
在CLI中有没有一种方法只为一个平台安装插件?
谢谢

1
现在在 Cordova 中有一个相关的功能请求:https://github.com/apache/cordova-cli/issues/552 - João Pimentel Ferreira
2个回答

33

我发现唯一的可行方式是修改三个内容:

  1. 编辑plugins/PLATFORM.js文件(例如plugins/android.js),并从“installed_plugins”数组中删除插件对象
  2. 对于platforms/PLATFORM/www/cordova_plugins.js文件,也要执行相同的操作,其中PLATFORM可能是ios、blackberry10、firefoxos等。在android情况下,它将位于assets/www而不是只有www
  3. 最后一步是删除platforms/PLATFORM/www/plugins/目录中的插件目录。在您的情况下,它将再次位于assets/www而不仅仅是www

3
在Cordova 5中,目录结构略有变化。platforms/PLATFORM/www/已经改为platforms/PLATFORM/assets/www - devnill
这对我也起作用了,但是我必须付出很多努力才能使我的版本控制正常运行。 - Quintonn
12
遗憾的是,Cordova 并没有为仅针对特定平台安装插件设置机制。 - philk
1
有没有办法使用 before-prepare 钩子自动化这个过程? - Trevor
不错的想法@Trevor,那将是理想的解决方案。你需要一个钩子before_platform_add,因为插件是在cordova platform add上添加到平台的。你只需要在特定的平台上运行它。 - João Pimentel Ferreira
1
@JoãoPimentelFerreira 我最终确实构建了一个脚本,使用plugman安装、更新和卸载插件。这是必要的,因为开发人员正在更改和更新插件,并在没有让团队匹配更新的情况下进行检入。我还得到了几个插件,只需要存在于Android或iOS上,而不是两者都有。 - Trevor

8

使用Plugman管理插件

安装Plugman

    $ npm install -g plugman

添加插件

    $ plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www <directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]

移除插件

    $ plugman --uninstall --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]

链接此页面:

    plugman -d --platform android --project myProject --plugin org.apache.cordova.battery-status

请访问以下链接了解更多信息:http://docs.phonegap.com/en/edge/plugin_ref_plugman.md.html

这个链接是关于插件管理器的,可以帮助您更好地理解它。

1
通过 plugman 安装它并没有帮助(正如我之前所说的)。作为一种解决方法,手动从 plugins/android.json 文件中删除插件,现在 Android 应用程序可以正常工作了! - contactabbas
2
你的解决方案看起来更好,但不幸的是plugman存在一些长期未解决的错误https://issues.apache.org/jira/browse/CB-5120。 - Calin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接