努力使用 Cordova barcodescanner 插件

Struggling to use Cordova barcodescanner plugin

我正在尝试使用 Cordova 创建一个应用程序(在 eclipse 中开发,使用 JBoss Hybrid Mobile Tools + CordovaSim)。

我在 this example.

上启发了给我带来问题的代码片段

我得到的错误是:

!JavaScript ERROR: TypeError: 'undefined' is not an object (evaluating 'cordova.plugins.barcodeScanner') on line 6 for http://localhost:54726/js/QRScan.js 

QRScan.js 仅包含以下代码(基本上与示例中的代码相同):

var scanBut = document.getElementById('QRScanButton');
scanBut.onclick = quickScan();


function quickScan(){
    cordova.plugins.barcodeScanner.scan(
            function (result) {
                var s = "Result: " + result.text + "<br/>" +
                "Format: " + result.format + "<br/>" +
                "Cancelled: " + result.cancelled;
                resultDiv.innerHTML = s;
            }, 
            function (error) {
                alert("Scanning failed: " + error);
            }
        );
}

并且我确保我的 index.html 在适当的位置包含以下行:

<script type="text/javascript" src="cordova.js"></script>

最后我的 xml 文件应该配置正确,我导入了正确的插件,文件看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"
    id="csam.test" version="1.0.0">
    <name>csam test</name>

    <description>
        A sample Apache Cordova application that responds to the
        deviceready
        event.
    </description>

    <author href="http://www.eclipse.org/thym" email="thym-dev@eclipse.org">
        Eclipse.org -
        Thym
    </author>

    <content src="index.html" />

    <access origin="*" />
    <preference name="fullscreen" value="true" />
    <preference name="webviewbounce" value="true" />

    <feature name="App">
        <param name="android-package" value="org.apache.cordova.App" />
    </feature>
    <feature name="BarcodeScanner">
        <param name="android-package" value="com.phonegap.plugins.barcodescanner.BarcodeScanner" />
        <param name="ios-package" value="CDVBarcodeScanner" />
        <param name="wp-package" value="BarcodeScanner" />
        <param name="id" value="cordova-plugin-barcodescanner" />
    </feature>



    <engine name="android" version="4.0.1" />
</widget>

插件必须等待 deviceready 事件才能使用。这是演示中等待 deviceready 添加回来的一段代码。

document.addEventListener("deviceready", init, false);
function init() {
    document.querySelector("#startScan").addEventListener("touchend", startScan, false);
    var scanBut = document.getElementById('QRScanButton');
    scanBut.onclick = quickScan();
}