window.plugins undefined in cordova-2.0.0 [closed]
Asked Answered
A

4

11

I'm trying to use the BarcodeScanner plugin for Cordova in a BlackBerry device without luck. The sample code makes use of this structure:

window.plugins.BarcodeScanner...

but window.plugins is undefined.

I tried with a fresh new application and window.plugins continues to be undefined (I mean, the sample application without any addition).

Did the api have changed and the documentation is outdated or there's something I'm missing?

Thanks!

Aparicio answered 23/7, 2012 at 13:13 Comment(2)
Note that currently the syntax is quite different: community.phonegap.com/nitobi/topics/…Trencher
"This question is unlikely to help any future visitors;" How come it has 9 votes and 7689 views?Foran
K
2

All, I pushed a new BarcodeScanner this morning that works with 2.0.0.

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

Kapor answered 24/7, 2012 at 18:26 Comment(4)
Thanks! There's any idea when it will be available for BlackBerry?Aparicio
It is now available for BB github.com/phonegap/phonegap-plugins/tree/master/BlackBerry/…Kapor
It sais the last change was 2 month ago. Maybe there's a pending pull request.Aparicio
Sorry I was on vacation. It says the last change was 13 days ago for me and that is just before I took off.Kapor
B
8

Cordova 2.0 has removed the "addPlugin" method used by the BarcodeScanner plugin. So a quick fix would be to remove (or comment out) the "addConstructor" function used to add the plugin, and replace it with an explicit attachment to the window object:

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

window.barcodeScanner = new BarcodeScanner();

Then, since "window.plugins" isn't used, you will also need to change the code that calls the "scan" method, so replace

window.plugins.barcodeScanner.scan(...

with

window.barcodeScanner.scan(...

I have tested this with Cordova 2.0 and it works.

Belamy answered 23/7, 2012 at 22:48 Comment(2)
but when ever i am calling window.barcodeScanner.scan(... some times it calls to my plugin and some times not.......can u tell me why? and gives me window.barcodeScanner.scan[undefined]is not a functionBratton
A sample of your code would be needed to help diagnose your problem.Belamy
W
3

Just ran into the same problem. After looking into the window-object I found the BarcodeScanner being right there. Sowindow.BarcodeScanner.prototype.scan(result, error) did the trick. Make sure you wait for cordova to be fully initialized, otherwise you may get sth like has no method exec()

Weissberg answered 23/7, 2012 at 15:27 Comment(4)
you mean, just call window.BarcodeScanner?Aparicio
yep, that's what worked for me. if you console.log(window) you should see the BarcodeScannerWeissberg
Didn't work. window.BarcodeScanner is undefined too.Aparicio
without modifying anything in the plugin itself: var bcs = new window.BarcodeScanner(); console.log(bcs) returns BarcodeScanner __proto__: Object constructor: function () { encode: function (type, data, successCallback, errorCallback, options) { scan: function (successCallback, errorCallback) { __proto__: ObjectWeissberg
K
2

All, I pushed a new BarcodeScanner this morning that works with 2.0.0.

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

Kapor answered 24/7, 2012 at 18:26 Comment(4)
Thanks! There's any idea when it will be available for BlackBerry?Aparicio
It is now available for BB github.com/phonegap/phonegap-plugins/tree/master/BlackBerry/…Kapor
It sais the last change was 2 month ago. Maybe there's a pending pull request.Aparicio
Sorry I was on vacation. It says the last change was 13 days ago for me and that is just before I took off.Kapor
A
0

Finally, I used cordova 1.9.0, as plugins are not up-to-date yet.

Thanks to everyone!

Aparicio answered 23/7, 2012 at 23:8 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.