我写了一个非常简单的离子包(作为测试的一部分)来启动条形码扫描仪
我已经安装了cordova-plugin-barcodescanner并使用了以下内容
$scope.scanBarcode = function() {
$cordovaBarcodeScanner
.scan()
.then(function(barcodeData) {
alert(barcodeData);
}, function(error) {
alert(error);
});
}
然后我有一个非常简单的
<button ng-click="scanBarcode()">Scan</button>
我编译了应用程序,生成了我的apk,安装在设备上,确认应用程序已启用相机(和存储)的权限 .
当我单击扫描按钮时,会发出错误
write settings: false
我无法开始,因为barcodescanner没有特定的错误文档 .
只是建议我在编译应用程序后能够使用cordova-plugin-camera确定离子创建器 .
3 回答
其实我也遇到过这个问题,它可能会发生在Android 6.0及以上版本中 .
在插件中,以下代码是触发它的代码 .
所以我认为我们需要通知插件创建者或提交一个修复程序 .
Temporarily what you can do is either you by pass it, by commenting the whole block I shared. 好像是's working from my side, haven' t检查它是否实际用于代码中的某处 . 为什么必须调用它 .
Another proper way, which is to enhance the code by implementing the following:
A.包含在AndroidManifest.xml中:
B.允许或要求用户通过调用所需的意图来允许写入设置:
UPDATE
C.这是由MoleDesign建议的,如下面的答案之一所述 . 解决方法的另一个解决方案是降低项目中的sdk版本.properties将其更改为:
从SDK-25及以上版本看来,一些cordova插件存在问题 . 我通过更改project.properties文件解决了我的问题
至
这可能也适用于24,但我没有安装该SDK
一旦构建了应用程序,条形码阅读器就可以正常工作
我也有这个错误并设法通过将
cordova-plugin-barcodescanner
从版本0.7.1
恢复为版本0.7.0
来修复它希望这可以节省一些人,我试图解决这个错误的挫折时间 .