phonegap项目中的barcodescanner插件问题

时间:2013-10-25 11:29:51

标签: javascript ios cordova barcode-scanner

我已经尝试了barcodescanner.js samples我需要Qrcode阅读器的phonegap项目,提供的示例项目在xcode中运行良好。我试图开发一个独立项目时出现问题。

  • 我的config.xml有:

<plugin name="com.cordova.barcodeScanner" value="CDVBarcodeScanner" />

  • iam使用:phonegap 2.7.0
  • 我已正确包含barcodescanner.js及其标记。

我的代码:

function onDeviceReady()
                {
                    // do your thing!
                    navigator.notification.alert("PhoneGap is working");

                    scanButton = document.getElementById("scan-button");
                    resultSpan = document.getElementById("scan-result");

                    scanButton.addEventListener("click", clickScan, false);
                    createButton.addEventListener("click", clickCreate, false);

                }
                  function clickScan() {
                      alert("clickScan");
                    window.plugins.barcodeScanner.scan(scannerSuccess, scannerFailure);
                }


                function scannerSuccess(result) {
                    console.log("scannerSuccess: result: " + result)
                    resultSpan.innerText = "success: " + JSON.stringify(result)
                }

                function scannerFailure(message) {
                    console.log("scannerFailure: message: " + message)
                    resultSpan.innerText = "failure: " + JSON.stringify(message)
                }
直到警报才可以; “clickscan”,

之后没有任何事情发生(什么阻止我的window.plugins.barcodeScanner.scan(scannerSuccess, scannerFailure);工作)。

这就是我的项目的样子 - &gt; enter image description here

Iam挣扎了两天,我在SO中检查了几乎所有关于“barcodescanner”标签的问题,没有解决我的问题,需要你的帮助..谢谢。

1 个答案:

答案 0 :(得分:1)

在您的config.xml中,您有:

<plugin name="com.cordova.barcodeScanner" value="CDVBarcodeScanner" />

但是在您的问题中链接的zip存档中的barcodescanner.js中,它的调用方式如下:

Cordova.exec(successWrapper, fail, "org.apache.cordova.barcodeScanner", "scan", options);

因此,请尝试将config.xml中的行更改为

<plugin name="org.apache.cordova.barcodeScanner" value="CDVBarcodeScanner" />

经过更多调查后,已经确定示例.zip中的barcodescanner.js是针对旧版本的Phonegap编写的,与2.7不兼容。 Here's a version我使用2.7和2.9,在config.xml中需要<plugin name="BarcodeScanner" value="CDVBarcodeScanner" />,可以像这样调用:

var scanner = cordova.require("cordova/plugin/barcodescanner"); 
scanner.scan(scannerSuccess, scannerFailure);