3

我在 Android 应用程序中使用了 PhoneGap 插件条码扫描器。当我将它们附加到按钮上的 onclick 事件时,这些功能window.plugins.barcodeScanner.encode和工作非常好。window.plugins.barcodeScanner.scan

但是,当我尝试对 body/page init/page show 事件的 onload 事件执行编码函数时,在 Eclipse 中出现以下错误

Uncaught TypeError: Cannot call method 'encode' of undefined at file:///android_asset/www/indexx.html:32

谢谢..

4

3 回答 3

2

你用的是哪个版本的phonegap?1.9.0 还是 2.0.0?

2.0.0 具有调用插件的新方法。在1.9上,您将使用:

window.plugins.barcodeScanner.scan( function(result) {
    ...
    ..
}

如果您使用的是 2.0.0,请尝试另一种初始化插件的方式:

window.barcodeScanner = new BarcodeScanner();

function scanBarcode()
{
    window.barcodeScanner.scan(function(result) {
        alert("We got a barcode\n" +
              "Result: " + result.text + "\n" +
              "Format: " + result.format); 
    }, function(error) {
        alert("Error scanning Barcode: " + error);
    });
}
于 2012-08-17T10:50:12.580 回答
0

尝试在 Cordova 完成加载后调用该方法(deviceready 事件)

于 2012-08-02T07:32:22.057 回答
0

我是 Cordova 的新手,但根据我所见,@traumalles 听起来确实是正确的。要在 Cordova 完成加载后调用 window.plugins.barcodeScanner.encode 或 window.plugins.barcodeScanner.scan 函数,请在您的 javascript 文件中执行以下操作:

// Wait for Cordova to load
document.addEventListener("deviceready", onDeviceReady, false);

// Cordova is ready
function onDeviceReady() {
  // As an example, you now have the device name, Cordova version, etc. available
  alert('Device Name: ' + device.name);
  alert('Device Cordova: ' + device.cordova);
  alert('Device Platform: ' + device.platform);
  alert('Device UUID: ' + device.uuid);
  alert('Device Version: ' + device.version);

  // Now call one of your barcode functions, etc.
}

有关详细信息,请参阅http://docs.phonegap.com/en/2.0.0/cordova_device_device.md.html#Device

于 2012-08-26T00:14:50.613 回答