11

Sto cercando di utilizzare il plug-in BarcodeScanner per Cordova in un dispositivo BlackBerry senza fortuna. Il codice di esempio fa uso di questa struttura:window.plugins undefined in cordova-2.0.0

window.plugins.BarcodeScanner... 

ma window.plugins è undefined.

ho provato con una nuova applicazione fresco e window.plugins continua ad essere undefined (voglio dire, l'applicazione di esempio, senza alcuna aggiunta).

L'API è stata modificata e la documentazione è obsoleta o c'è qualcosa che mi manca?

Grazie!

+0

Nota che attualmente la sintassi è molto diversa: http://community.phonegap.com/nitobi/topics/_barcodescanner_plugin_upgrading_scanner_javascript_api_code_changes_required – Nux

+1

"Questa domanda è improbabile per aiutare i futuri visitatori;" Com'è che ha 9 voti e 7689 visualizzazioni? – Spiff

risposta

3

Appena incontrato lo stesso problema. Dopo aver esaminato l'oggetto finestra, ho trovato il BarcodeScanner proprio lì. Quindi il window.BarcodeScanner.prototype.scan(result, error) ha fatto il trucco. Accertarsi che Cordova sia inizializzato completamente, altrimenti è possibile ottenere come has no method exec()

+0

vuoi dire, basta chiamare 'window.BarcodeScanner'? – ivowiblo

+0

sì, questo è quello che ha funzionato per me. se si 'console.log (finestra)' si dovrebbe vedere 'BarcodeScanner' – d2uX

+0

Non ha funzionato. 'window.BarcodeScanner' è anche' indefinito'. – ivowiblo

8

Cordova 2.0 ha rimosso il metodo "addPlugin" utilizzato dal plug-in BarcodeScanner. Quindi una soluzione rapida sarebbe quello di eliminare (o commentare) la funzione "addConstructor" utilizzato per aggiungere il plugin, e sostituirlo con un allegato esplicito all'oggetto finestra:

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

window.barcodeScanner = new BarcodeScanner(); 

Poi, dal momento che "window.plugins "non viene utilizzato, sarà anche necessario modificare il codice che chiama il 'metodo di scansione', in modo da sostituire

window.plugins.barcodeScanner.scan(... 

con

window.barcodeScanner.scan(... 

ho testato questo con Cordova 2.0 e funziona.

+0

ma quando mai sto chiamando ** window.barcodeScanner.scan (... ** alcune volte chiama il mio plugin e alcune volte non ....... puoi dirmi perché? e mi dà ** window.barcodeScanner.scan [undefined] non è una funzione ** –

+0

Sarebbe necessario un esempio del tuo codice per aiutare a diagnosticare il tuo problema – dogatonic

0

Infine, ho utilizzato cordova 1.9.0, poiché i plug-in non sono ancora aggiornati.

Grazie a tutti!