8

PhoneGap の BarcodeScanning プラグインを PhoneGap 1.7.0 で動作させることができた人はいますか?

バーコード スキャン プラグイン: https://github.com/phonegap/phonegap-plugins/tree/master/iOS/BarcodeScanner

問題は、プラグインが追加されたときに設定されないことです..

「alert(window.plugins.barcodeScanner);」を呼び出すと、次のようになります。

"未定義"

プラグインの追加に失敗しているポイントを特定しようとしています。詳細がわかり次第、質問を更新します..

助けていただける方、よろしくお願いします...


以下の更新された回答:

4

4 に答える 4

11

すばらしい、

プラグインが再び機能するようになりました。
1 つの問題は、プラグインのドキュメントで、キー インは であるCordova.plist必要があるとまだ述べられてorg.apache.cordova.barcodeScannerいることですが、今では明らかなことである必要がありますcom.cordova.barcodeScanner

于 2012-05-09T12:58:13.873 に答える
6

さて、少し突っ込んでTwitter PhoneGapプラグインを例として使用した後、なんとか機能させることができました。

Twitterの素敵な人々がプラグインを更新してPhoneGap1.7.0で動作するようにしたので、これをアプローチの基礎として使用しました。

Twitter PhoneGapプラグイン: https ://github.com/phonegap/phonegap-plugins/blob/master/iOS/Twitter/js/TwitterPlugin.js

更新されたbarcodescanner.jsコードは次のとおりです。

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();
                       });
于 2012-06-03T11:15:05.767 に答える
3

私はコードバ 2.3 にバーコードスキャナーを追加しました - それは非常に簡単です

必要なファイルをコピーしたら、次の行を config.xml に追加するだけです。

<plugin name="org.apache.cordova.barcodeScanner" value="CDVBarcodeScanner" /> 
于 2013-01-20T20:12:07.093 に答える