在cordova-2.0.0中未定义的window.plugins [关闭]

Posted

技术标签:

【中文标题】在cordova-2.0.0中未定义的window.plugins [关闭]【英文标题】:window.plugins undefined in cordova-2.0.0 [closed] 【发布时间】:2012-07-23 13:13:57 【问题描述】:

我正在尝试在 BlackBerry 设备中使用 Cordova 的 BarcodeScanner 插件,但没有成功。示例代码使用了这种结构:

window.plugins.BarcodeScanner...

window.pluginsundefined

我尝试了一个全新的应用程序,window.plugins 仍然是undefined(我的意思是,没有任何添加的示例应用程序)。

api 是否已更改,文档是否已过时或缺少某些内容?

谢谢!

【问题讨论】:

请注意,目前的语法完全不同:community.phonegap.com/nitobi/topics/… "这个问题不太可能帮助任何未来的访客;"怎么有9票7689浏览量? 【参考方案1】:

Cordova 2.0 删除了 BarcodeScanner 插件使用的“addPlugin”方法。所以一个快速的解决方法是删除(或注释掉)用于添加插件的“addConstructor”函数,并将其替换为窗口对象的显式附件:

//cordova.addConstructor(function() 
//    cordova.addPlugin('barcodeScanner', new BarcodeScanner());
//);

window.barcodeScanner = new BarcodeScanner();

那么,由于没有使用“window.plugins”,你还需要更改调用“scan”方法的代码,所以替换

window.plugins.barcodeScanner.scan(...

window.barcodeScanner.scan(...

我已经用 Cordova 2.0 对此进行了测试,它可以工作。

【讨论】:

但是当我调用 window.barcodeScanner.scan(... 有时它会调用我的插件,有时不会......你能告诉我为什么?并告诉我 window.barcodeScanner.scan[undefined]is not a function 需要您的代码示例来帮助诊断您的问题。【参考方案2】:

刚刚遇到了同样的问题。查看窗口对象后,我发现 BarcodeScanner 就在那里。 所以window.BarcodeScanner.prototype.scan(result, error) 成功了。 确保等待cordova完全初始化,否则你可能会得到has no method exec()

【讨论】:

你的意思是,打电话给window.BarcodeScanner? 是的,这对我有用。如果你console.log(window) 你应该看到BarcodeScanner 没用。 window.BarcodeScanner 也是 undefined 不修改插件本身的任何内容:var bcs = new window.BarcodeScanner(); console.log(bcs) 返回 BarcodeScanner __proto__: Object constructor: function () encode: function (type, data, successCallback, errorCallback, options) scan: function (successCallback, errorCallback) __proto__: Object【参考方案3】:

所有,我今天早上推了一个新的 BarcodeScanner,它适用于 2.0.0。

https://github.com/phonegap/phonegap-plugins/tree/master/android/BarcodeScanner/2.0.0

【讨论】:

谢谢!有什么想法可以在黑莓上使用吗? BB github.com/phonegap/phonegap-plugins/tree/master/BlackBerry/…现在可以使用 最后一次更改是在 2 个月前。也许有一个待处理的拉取请求。 对不起,我在度假。它说最后一次更改是在 13 天前对我来说,那是在我起飞之前。【参考方案4】:

最后,我使用了cordova 1.9.0,因为插件还不是最新的。

谢谢大家!

【讨论】:

以上是关于在cordova-2.0.0中未定义的window.plugins [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ReferenceError:在 MongoDB shell 中未定义要求

VueJS 道具在组件中未定义

在microsoft边缘扩展中未定义chrome

带有devc ++的opencv中未定义的引用[重复]

使用 Google 地图进行地理定位无法使用 PhoneGap

codeIgniter PHP 8.0中未定义的常量“MCRYPT_RIJNDAEL_128”[重复]