我已经为需要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);