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

Javascript Cordova:如何检查插件在运行时是否可用?,javascript,cordova,Javascript,Cordova,基于Cordova的应用程序的JavaScript部分如何检查某个插件在本机部分是否可用 我尝试使用也没有帮助-虽然我的插件的JavaScript部分已加载,但本机部分可能不可用 cordova.require( 'cordova/plugin_list' ).metadata 我基本上需要的是一种对这些错误做出反应的方法(从iOS项目复制) 当我试着去做的时候 cordova.exec( successFn, errorFn, 'MyPlugin', 'someAction', [{}] );

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

我尝试使用也没有帮助-虽然我的插件的JavaScript部分已加载,但本机部分可能不可用

cordova.require( 'cordova/plugin_list' ).metadata 我基本上需要的是一种对这些错误做出反应的方法(从iOS项目复制)

当我试着去做的时候

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

并且
MyPlugin
不包含在本机项目中。

您可以制作一个插件来检索可用插件列表。具体来说,您可以在项目中打包的
config.xml
中的各种
标记中读取类的名称。在Android上,这可以在
res
文件夹中的
xml
文件夹中找到,其他资源都在该文件夹中。目前不确定它在iOS上的位置

或者,您可以在示例中的
errorFn
中检测错误,因为它是一个字符串,表示
“未找到类”


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

您可以制作一个插件来检索可用插件的列表。具体来说,您可以在项目中打包的
config.xml
中的各种
标记中读取类的名称。在Android上,这可以在
res
文件夹中的
xml
文件夹中找到,其他资源都在该文件夹中。目前不确定它在iOS上的位置

或者,您可以在示例中的
errorFn
中检测错误,因为它是一个字符串,表示
“未找到类”


但是,这两种方法都是异步的,因此它不如只检查全局变量好。

您能分享导致此错误的代码吗?我知道你的问题是关于处理这个问题的一般情况,但这将有助于更好地理解问题。如果你正确创建了插件,你将不会收到“plugin'MyPlugin'not found,或者不是CDVPlugin”,因此没有什么需要检查的,从修复插件开始吧。你错过了我问题的重点。请保持本体。我也需要这个,因为插件的JS部分可以通过CodePush推送到应用程序中,但是本机层可能会丢失。丹尼斯,你解决了这个问题吗?Thx-注意:我试图依赖现有的本地方法,并依赖它们的错误,当我执行cordova.exec时超时几毫秒。这几乎是5年前的事了-我不记得了。我很久以前就停止与Cordova合作了。你能分享给你这个错误的代码吗?我知道你的问题是关于处理这个问题的一般情况,但这将有助于更好地理解问题。如果你正确创建了插件,你将不会收到“plugin'MyPlugin'not found,或者不是CDVPlugin”,因此没有什么需要检查的,从修复插件开始吧。你错过了我问题的重点。请保持本体。我也需要这个,因为插件的JS部分可以通过CodePush推送到应用程序中,但是本机层可能会丢失。丹尼斯,你解决了这个问题吗?Thx-注意:我试图依赖现有的本地方法,并依赖它们的错误,当我执行cordova.exec时超时几毫秒。这几乎是5年前的事了-我不记得了。我很久以前就不再和科尔多瓦合作了。
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', [{}] );