Cordova:如何在运行时检查插件是否可用?

时间:2015-10-14 09:24:18

标签: javascript cordova

基于Cordova的应用程序的JavaScript部分如何检查本机部分中是否有某个插件?

我尝试使用

cordova.require( 'cordova/plugin_list' ).metadata
但它返回了通过cordova_plugins.js加载的JavaScripts列表。像
if ( typeof( window.plugins.MyPlugin ) != 'undefined' )
这样的事情也没有帮助 - 当我的插件的JavaScript部分被加载时,原生部分可能无法使用。

我基本上需要的是一种对这些错误作出反应的方法(从iOS项目中复制)

ERROR: Plugin 'MyPlugin' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.

-[CDVCommandQueue executePending] [Line 158] FAILED pluginJSON = [
  "MyPlugin1093761140",
  "MyPlugin",
  "someAction",
  []
]

当我尝试做的时候,

cordova.exec( successFn, errorFn, 'MyPlugin', 'someAction', [{}] );

MyPlugin未包含在本机项目中。

1 个答案:

答案 0 :(得分:0)

您可以创建一个检索可用插件列表的插件。具体来说,您可以阅读项目中打包的<feature>中各种config.xml标记内的类名称。在Android上,可以在xml文件夹中的res文件夹中找到其他资源。目前还不确定它在iOS上的位置。

或者,您可以在示例中的errorFn中检测到错误,因为它是一个表示"Class not found"的字符串。

这两种方法都是异步的,所以它不如检查全局变量那么好。