在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.plugins
是undefined
。
我尝试了一个全新的应用程序,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 中未定义要求