3

AndroidアプリでPhoneGapプラグインバーコードスキャナーを使用しました。ボタンのonclickイベントにそれらをアタッチすると、関数window.plugins.barcodeScanner.encodewindow.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を初めて使用しますが、私が見たものに基づくと、@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 に答える
0

Cordovaの読み込みが完了したら、メソッドを呼び出してみてください(devicereadyイベント)

于 2012-08-02T07:32:22.057 に答える