基于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
未包含在本机项目中。
答案 0 :(得分:0)
您可以创建一个检索可用插件列表的插件。具体来说,您可以阅读项目中打包的<feature>
中各种config.xml
标记内的类名称。在Android上,可以在xml
文件夹中的res
文件夹中找到其他资源。目前还不确定它在iOS上的位置。
或者,您可以在示例中的errorFn
中检测到错误,因为它是一个表示"Class not found"
的字符串。
这两种方法都是异步的,所以它不如检查全局变量那么好。