安装Phonegap/Cordova 3.1插件(条形码扫描器)

4

我已经尝试了几个小时,取得了一些进展,但不是正确的方向。

我已经成功地设置了一个Android Cordova项目,它可以加载到手机上并正常运行。但是我无法让条码扫描器插件在Cordova 3.1中工作。我相信它已经正确安装,但它没有出现在config.xml中,但它出现在cordova_plugins.js文件中。

我在我的index.js文件中有这个:

function clickScan() {
    var scanner = cordova.require("com.phonegap.plugins.barcodescanner.BarcodeScanner");
    scanner.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插件添加的扫描仪https://github.com/wildabeast/BarcodeScanner
我目前没有将barcodescanner.js文件导入到HTML中,因为在3+中这似乎是由cordova_plugins.js文件处理的,而我之前的版本已经导入过了。 更新: 就我所知,在上述配置中,在Eclipse中没有弹出任何明显的错误。
1个回答

5

是的,您不需要在index.html中导入任何特定的插件JavaScript文件。 只需确认该插件已正确安装到您的项目中,方法是确认YourProject/res/config.xml文件具有以下条目:

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

使用这个插件只需要使用更新后的调用插件函数的语法 -

function clickScan() {
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);
  });}

经过仔细检查,我发现我把它放在了Res文件夹中,但我错过了一些不是很明显的步骤。我需要从根目录运行构建命令,这将把插件推送到所有平台,感谢您的帮助! - Aaron Fisher
这在cordova 3.3.1-0.1.2版本中对我不起作用。您所说的更新语法是什么意思?这是未记录的更改吗?如果是,您能指出源吗?在开发者文档中,语法为cordova.exec('<plugin.ref>') http://cordova.apache.org/docs/en/3.3.0/guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide - Dan Schien
我认为这将涉及到条形码扫描器API的语法:它从var scanner = window.cordova.require("cordova/plugin/BarcodeScanner");scanner.scan(function (result) {}, function (error) {});转换为简单的window.plugins.barcodeScanner,最终变成了cordova.plugins.barcodeScanner - netalex

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