有没有办法判断Cordova 2.5.0中是否可以调用特定的Cordova插件? Cordova.exec
接收successFunction
和failFunction
,但只有在执行本机代码时才会调用failFunction
。如果接收功能不存在,有没有办法接收错误或回调?我正在寻找适用于加载到WebView
http://docs.phonegap.com/en/2.5.0/guide_plugin-development_ios_index.md.html
答案 0 :(得分:13)
对于一个非常简单(和更简洁)的解决方案,您也可以使用此方法:
var plugins = cordova.require("cordova/plugin_list").metadata;
你会得到一个看起来像这样的物体:
{
'cordova-plugin-network-information': "1.0.0",
'cordova-plugin-whitelist': "1.0.0"
}
作为任何常规变量,您可以检查它是否已定义:
if (typeof plugins['cordova-plugin-whitelist'] === "undefined")
{
// This plugin is missing
}
答案 1 :(得分:2)
在尝试访问插件之前,您可以在100 ms内执行setTimeout,并且在插件成功/失败时取消超时。如果超时触发 - 没有安装插件。
答案 2 :(得分:0)
这不是完全安全的,但您应该能够读取config.xml并搜索插件配置以查看插件是否已注册:
var myPluginName = "MyPluginName";
var myPluginExists = false;
$.ajax(
{
url: "../config.xml",
success:
function(configXML)
{
myPluginExists = (configXML.indexOf(myPluginName) > 0);
},
dataType: "text"
});
答案 3 :(得分:0)
要查看特定的Cordova插件是否可用,请使用以下简单解决方案。 下面,我正在检查window.plugins.OneSignal是否未定义。将“ OneSignal”替换为您要检查的插件名称。
if (typeof(window.plugins.OneSignal) !== 'undefined') {
// do your thing
}