我已经为需要Qrcode阅读器的phonegap项目尝试了barcodescanner.js samples,提供的示例项目在xcode中可以正常工作。当iam尝试开发独立项目时,就会出现问题。


我的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);工作的原因)。

这就是我的项目的样子->


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

最佳答案

在您的config.xml中,您具有:

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


但是在您的问题中链接的zip存档中的条形码扫描器.js中,它的名称如下:

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


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

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


经过更多研究,可以确定示例.zip中的条形码扫描器.js是为较旧版本的Phonegap编写的,并且与2.7不兼容。我使用2.7和2.9的Here's a version,在config.xml中需要<plugin name="BarcodeScanner" value="CDVBarcodeScanner" />,可以这样称呼:

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

10-08 06:02