1

QRスキャナーを追加しようとしているPhoneGapアプリが動作しています。これを行うために、PhoneGap Build の BarcodeScanner プラグインを使用しています。私が抱えている問題は、スキャンが完了すると、アラートによってアプリがフリーズすることです。

関連する JavaScript は

var options=""
options += '<p>'+formData["form"][formPart][1]+'</p>'
options += '<a data-role="button" data-rel="dialog" formPart="'+formPart+'"id="Cap-'+formPart+'">Capture Image</a>'
options += '<p id="Cap-Data"></p>'
$('#formContent').append(options);
$('#Cap-'+formPart).on("tap",function(event){
var scanner = cordova.require("cordova/plugin/BarcodeScanner");
scanner.scan(
 function (result) {
  var FP = $(this).attr("formPart");
  $('#Cap-Data').html(result.text);
   alert(result.text);
  }, 
  function (error) {
   alert("Scanning failed: " + error);
  }
 );
});

これに関するヘルプは大歓迎です。

4

1 に答える 1

4

問題は、関数が戻るまで実行を完全に停止するalertか停止することです。promptアラート コードをsetTimeout()No timeout needed に入れてみてください。ただし、0 ミリ秒に設定できます。すぐに発生しますが、流れをブロックしません。

setTimeout(function() {
  alert(result.text);
}, 0);

この質問setTimeout(fn, 0)は、これらの状況で役立つ理由について読むのに適しているかもしれません。

于 2013-07-29T16:10:31.997 に答える