window.plugins undefined in cordova-2.0.0

Ivo picture Ivo · Jul 23, 2012 · Viewed 11k times · Source

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!

Answer

dogatonic picture dogatonic · Jul 24, 2012

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.