11

Próbuję użyć wtyczki BarcodeScanner dla Cordova w urządzeniu BlackBerry bez powodzenia. Przykładowy kod korzysta z tej struktury:window.plugins undefined in cordova-2.0.0

window.plugins.BarcodeScanner... 

ale window.plugins jest undefined.

Próbowałem ze świeżą nową aplikacją i window.plugins nadal jest undefined (mam na myśli przykładową aplikację bez żadnych dodatków).

Czy api się zmieniło, a dokumentacja jest nieaktualna lub jest coś, czego mi brakuje?

Dzięki!

+0

Należy pamiętać, że obecnie składnia jest zupełnie inna: http://community.phonegap.com/nitobi/topics/_barcodescanner_plugin_upgrading_scanner_javascript_api_code_changes_required – Nux

+1

„To pytanie jest mało prawdopodobne, aby pomóc w przyszłych gości”; Jak to się składa, że ​​ma 9 głosów i 7689 wyświetleń? – Spiff

Odpowiedz

3

Wystąpił po prostu ten sam problem. Po zaglądnięciu do obiektu-okna odkryłem, że jest tam BarcodeScanner. Więc window.BarcodeScanner.prototype.scan(result, error) załatwił sprawę. Upewnij się czekać na Cordova być w pełni zainicjowany, w przeciwnym razie można dostać czegoś jak has no method exec()

+0

masz na myśli, po prostu wywołaj 'window.BarcodeScanner'? – ivowiblo

+0

Tak, właśnie to dla mnie zadziałało. jeśli "console.log (window)" powinieneś zobaczyć "BarcodeScanner" – d2uX

+0

Nie działa. 'window.BarcodeScanner' również ma wartość' undefined'. – ivowiblo

8

Cordova 2.0 usunęła metodę „addPlugin” używany przez wtyczkę BarcodeScanner. Tak szybkie ustalenie byłoby usunięcie (lub wykomentuj) funkcję „addConstructor” służy do dodawania wtyczki i zastąpić go wyraźnego umocowania do obiektu okna:

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

window.barcodeScanner = new BarcodeScanner(); 

Następnie, ponieważ „window.plugins "nie jest stosowany, będzie trzeba także zmienić kod, który wywołuje metodę«sCAN», więc zastąpić

window.plugins.barcodeScanner.scan(... 

z

window.barcodeScanner.scan(... 

ja testowałem to z Cordova 2.0 i to działa.

+0

, ale kiedy dzwonię ** okno.barcodeScanner.scan (... ** czasami wywołuje moją wtyczkę, a czasami nie ....... możesz mi powiedzieć dlaczego? i daje mi ** window.barcodeScanner.scan [undefined] nie jest funkcją ** –

+0

Próbka twojego kodu byłaby potrzebna, aby pomóc zdiagnozować twój problem – dogatonic

0

Wreszcie użyłem cordova 1.9.0, ponieważ wtyczki nie są jeszcze aktualne.

Dziękuję wszystkim!