Cordova插件条码扫描器无法打开扫描功能。

3
我是一名有帮助的助手,以下是您需要翻译的内容:

我对条形码扫描插件遇到了问题(我不是天才,也不太懂如何编写Web应用程序)。 我使用PhoneGap和Cordova,并尝试在单击链接后扫描条形码。 我已经安装了插件,先前使用以下命令行:

cordova plugin add cordova-plugin-barcodescanner

我写了下面这段JS代码:

function scan(){
 cordova.plugins.barcodeScanner.scan(
  function (result) {
      alert("We got a barcode\n" +
            "Result: " + result.text + "\n" +
            "Format: " + result.format + "\n" +
            "Cancelled: " + result.cancelled);
  }, 
  function (error) {
      alert("Scanning failed: " + error);
  }
 );
}

在HTML中:

<a href="javascript:void(0);" onclick="scan()">Scan</a>

但是当我点击链接时,什么也没有发生。
如果我在 function scan(){ 后加上 alert,它会显示;
如果我在 cordova.plugins.barcodeScanner.scan( 后加上 alert,它什么也不做。
因此,我尝试使用以下命令卸载并安装插件:

cordova plugin add com.phonegap.plugins.barcodescanner

使用相同的js和html代码,但它还没有生效。
因此,我卸载了插件并尝试以下安装:

cordova plugin add https://github.com/wildabeast/BarcodeScanner.git

但是还没有任何结果。 我搜索了很多并尝试了很多解决方案! 我使用的是cordova 5.0.0,我在android 4.4和IOS上尝试了这个插件。 我也安装了相机插件。 所以,请帮帮我!错误在哪里? 我按照网上和stackoverflow上找到的所有解决方案进行了操作。 代码总是在以下位置崩溃:
cordova.plugins.barcodeScanner.scan(

有人能帮我吗?非常感谢。


你是否在开始脚本之前等待 Cordova 的 deviceready 事件? - Joerg
是的,我在开始运行脚本之前等待Cordova deviceready事件。 - Giulia
在onDeviceReady事件中编写您的插件代码,确保在HTML文件中包含了cordova.js。 - Dilip Suvagiya
我们需要把scan()函数放到onDeviceReady()里面吗? function onDeviceReady () { function scan(){ cordova.plugins.barcodeScanner.scan( function (result) { alert("We got a barcode\n" + "Result: " + result.text + "\n" + "Format: " + result.format + "\n" + "Cancelled: " + result.cancelled); }, function (error) { alert("Scanning failed: " + error); } ); } } 这样正确吗? 我确定已经包含了cordova.js。 - Giulia
2个回答

0

如果是 Android 系统,您需要在 config.xml 中添加以下功能:

<feature name="BarcodeScanner">
    <param name="android-package" value="com.phonegap.plugins.barcodescanner.BarcodeScanner" />
</feature>

0

首先,您可以在Firefox浏览器中使用Firebug检查代码,看看是否有错误可以让您这样做,或者您可以尝试其他库,如intelXDK。

document.addEventListener("intel.xdk.device.barcode.scan",function(evt){});

我用firebug测试了这个应用程序。当我点击按钮时,firebug返回错误“cordova.plugins.barcodeScanner.scan未定义”。你知道为什么吗?我已经包含了barcodescanner.js和cordova.js,以及其他的js文件,如jquery和jquery mobile。可能是什么问题呢?非常感谢。 - Giulia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接