使用Cordova 6.3.1,我安装了以下Crodova插件: cordova-plugin-camera,cordova.plugins.diagnostic,phonegap-plugin-barcodescanner
我正在使用以下JavaScript代码访问相机并扫描QR码:
function scanQR() {
cordova.plugins.diagnostic.requestCameraAuthorization(function(status) {
console.log("Authorization request for camera returned " + status);
if (status == cordova.plugins.diagnostic.permissionStatus.GRANTED) {
try {
cordova.plugins.barcodeScanner.scan(scanQRDone, function (error) {
console.log(error);
});
} catch (e) {
console.log(e.message);
}
}
}, function (error) {
console.log(error);
});
}
function scanQRDone(result) {
console.log(result);
}
requestCameraAuthorization调用会提示您在设备上进行确认,并在允许时返回状态GRANTED。 然而,对cordova.plugins.barcodeScanner.scan的调用只会使Nexus 7上的应用程序崩溃。
发生崩溃的实际行是cordova.js第940行:
var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson);
其中service =“BarcodeScanner”和action =“scan” 看起来像本机代码中的某种版本不匹配,欢迎任何想法。
答案 0 :(得分:0)
从头开始创建一个新的离子应用程序并将www文件夹的内容复制到其中已解决了这个问题。
答案 1 :(得分:0)
在config.xml文件中添加此
< platform name="android" > <br>
< preference name="android-targetSdkVersion" value="23" /> <br>
< /platform>