PhoneGap BarcodeScanner导致iOS应用程序挂起

时间:2013-07-29 15:50:08

标签: javascript ios cordova barcode

我有一个正在运行的PhoneGap应用程序,我正在尝试添加QR扫描仪。为此,我正在使用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);
  }
 );
});

对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

问题是像alertprompt这样的函数会完全停止执行,直到它们返回为止。尝试将警报代码放入setTimeout()但不需要超时,您可以将其设置为0 ms。所以它会立即发生,但不会阻止流动。

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

This question可能很好地解释了setTimeout(fn, 0)在这些情况下有何帮助。