2012-05-04 5 views
8

Hat es jemand geschafft, das BarcodeScanning-Plugin für PhoneGap auf PhoneGap 1.7.0 zu bekommen?iOS PhoneGap 1.7.0 + Barcode-Scan-Plugin Ausgabe

Barcode-Scanning-Plugin: https://github.com/phonegap/phonegap-plugins/tree/master/iOS/BarcodeScanner

Die Probleme ist, dass das Plugin nicht gesetzt wurden, wenn seine zusätzlichen ..

bekomme ich folgende wenn ich "alert (window.plugins.barcodeScanner);"

„undefined“

Ich versuche, um den Punkt zu isolieren, wo das Plugin erhalten hinzugefügt versagt und wird die Frage aktualisieren, sobald ich weiß, mehr ..

Vielen Dank im Voraus für jeden, der helfen kann. ..


Aktualisiert Antwort unten:

Antwort

6

OK, nach ein bisschen herumstöbern und mit dem twitter PhoneGap Plugin als Beispiel, habe ich es geschafft zu arbeiten !!

Ich habe dies als Grundlage für meinen Ansatz verwendet, weil die lieben Leute von Twitter ihr Plugin für PhoneGap 1.7.0 aktualisiert haben, Gott sei Dank !!

Twitter PhoneGap Plugin:https://github.com/phonegap/phonegap-plugins/blob/master/iOS/Twitter/js/TwitterPlugin.js

Hier ist die aktualisierte barcodescanner.js Code:

var BarcodeScanner = function(){}; 

BarcodeScanner.prototype.isBarcodeScannerAvailable = function(response){ 
    cordova.exec(response, null, "BarcodeScannerPlugin", "isBarcodeScannerAvailable", []); 
}; 

BarcodeScanner.prototype.isBarcodeScannerSetup = function(response){ 
    cordova.exec(response, null, "BarcodeScannerPlugin", "isBarcodeScannerSetup", []); 
}; 

//------------------------------------------------------------------- 
BarcodeScanner.Encode = { 
TEXT_TYPE:  "TEXT_TYPE", 
EMAIL_TYPE: "EMAIL_TYPE", 
PHONE_TYPE: "PHONE_TYPE", 
SMS_TYPE:  "SMS_TYPE", 
CONTACT_TYPE: "CONTACT_TYPE", 
LOCATION_TYPE: "LOCATION_TYPE" 
} 

//------------------------------------------------------------------- 
BarcodeScanner.prototype.scan = function(success, fail, options) { 
    function successWrapper(result) { 
     result.cancelled = (result.cancelled == 1) 
     success.call(null, result) 
    } 

    if (!fail) { fail = function() {}} 

    if (typeof fail != "function") { 
     console.log("BarcodeScanner.scan failure: failure parameter not a function") 
     return 
    } 

    if (typeof success != "function") { 
     fail("success callback parameter must be a function") 
     return 
    } 

    if (null == options) 
     options = [] 

     return PhoneGap.exec(successWrapper, fail, "com.cordova.barcodeScanner", "scan", options) 
     } 

//------------------------------------------------------------------- 
BarcodeScanner.prototype.encode = function(type, data, success, fail, options) { 
    if (!fail) { fail = function() {}} 

    if (typeof fail != "function") { 
     console.log("BarcodeScanner.scan failure: failure parameter not a function") 
     return 
    } 

    if (typeof success != "function") { 
     fail("success callback parameter must be a function") 
     return 
    } 

    return PhoneGap.exec(success, fail, "com.cordova.barcodeScanner", "encode", [{type: type, data: data, options: options}]) 
} 

cordova.addConstructor(function() { 

         /* shim to work in 1.5 and 1.6 */ 
         if (!window.Cordova) { 
         window.Cordova = cordova; 
         }; 


         if(!window.plugins) window.plugins = {}; 
         window.plugins.barcodeScanner = new BarcodeScanner(); 
         }); 
+0

danke für den Hinweis auf den neuen Namen: com.cordova.barcodeScanner. Wie hast du das herausgefunden?
Ich habe es in Cordova.plist geändert und zumindest das Scannerobjekt ok erstellt. Beachten Sie, dass die 21-stündige Datei weiterhin auf org.apache.cordova verweist.barcodeScanner unter https://github.com/phonegap/phonegap-plugins/blob/master/iOS/BarcodeScanner/barcodescanner.js. – GeorgeW

+1

@damien murphy - danke Kumpel, endlich nach 3 Tagen Haare ziehen funktioniert ...;) –

11

ausgezeichnet,

Das Plugin funktioniert jetzt wieder.
Ein Problem ist die Dokumentation für das Plugin sagt immer noch, der Schlüssel in Cordova.plist sollte org.apache.cordova.barcodeScanner sein, aber offensichtlich, was es jetzt sein sollte com.cordova.barcodeScanner.

3

ich gerade hinzugefügt Barcodescanner zu cordova 2.3 - es ist ganz einfach

nach dem Kopieren die notwendigen Dateien müssen Sie nur die folgende Zeile zu config.xml

hinzufügen
<plugin name="org.apache.cordova.barcodeScanner" value="CDVBarcodeScanner" /> 
0

Falls dies hilft jedermann: https://github.com/zeroasterisk/PhoneGap-BarcodeScanner-Example-iOS

Einzelnen:

das Plugin (in einer Handvoll von Pfaden), aber die eine gehalten, die funktionierte. Implementiert einen grundlegenden JS-Scanner-Code, um die Funktionalität zu demonstrieren: Auto-Läuft beim Laden, Auto-Reload bei Fehler, Warnungen bei Erfolg/Fehler/Abbrechen.

HINWEIS: Die Kommentare zu den Barcodescanner.js und Index.js, beide erwähnen meine Anpassung der definieren/erfordern Objektpfade. Ich konnte die Demo/Beispielpfade nach mehreren Permutationen nicht zum Laufen bringen.