0

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

  • 我的 config.xml 有:

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

  • 我正在使用: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)
                }

直到警报都可以;“点击扫描”,

之后什么都没有发生(是什么阻止了我的 window.plugins.barcodeScanner.scan(scannerSuccess, scannerFailure);工作)。

这就是我的项目的样子--> 在此处输入图像描述

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

4

1 回答 1

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 不兼容。这是我在 2.7 和 2.9 中使用的版本,需要<plugin name="BarcodeScanner" value="CDVBarcodeScanner" />在 config.xml 中,可以这样调用:

var scanner = cordova.require("cordova/plugin/barcodescanner"); 
scanner.scan(scannerSuccess, scannerFailure);
于 2013-10-25T12:07:51.507 回答