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

太好了,

该插件现在又可以使用了。
一个问题是插件的文档仍然说 key inCordova.plist应该是org.apache.cordova.barcodeScanner但现在应该是显而易见的事情com.cordova.barcodeScanner

于 2012-05-09T12:58:13.873 回答
6

好的,经过一番摸索,并以 twitter PhoneGap 插件为例,我设法让它工作了!!

我将此作为我的方法的基础,因为 twitter 上可爱的人更新了他们的插件以使用 PhoneGap 1.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

我刚刚将barcodescanner 添加到cordova 2.3 - 这很简单

复制必要的文件后,您只需将以下行添加到 config.xml

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

如果这对任何人都有帮助: https ://github.com/zeroasterisk/PhoneGap-BarcodeScanner-Example-iOS

具体来说:

安装了插件(在少数几个路径中),但保留了一个有效的。实现了一个基本的 JS 扫描器代码来演示功能:加载时自动运行,错误时自动重新加载,成功/失败/取消警报。

注意:barcodescanner.js 和 index.js 上的注释都提到了我对定义/要求对象路径的自定义。经过几次排列后,我无法让演示/示例路径正常工作。

于 2013-05-28T16:04:49.783 回答