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

Cordova: how to check if plugin is available at runtime?

本文关键字:插件 是否 检查 运行时 Cordova      更新时间:2023-09-26

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

我尝试使用

cordova。Require ('cordova/plugin_list')。元数据
,但它返回通过cordova_plugins.js加载的javascript列表。做一些像
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不包含在原生项目中

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

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

两种方法都是异步的,所以它不会像只检查全局那样好。