0

我在 Cordova 中使用 Barcode Scanner 插件,当我浏览我的应用程序时,相机一直冻结。

它在 XCode 中引发以下警告:

Warning: Attempt to present <CDVbcsViewController> on <MainViewController> while a presentation is in progress!

你有什么想法我可以解决这个问题吗?

编辑:

当我浏览应用程序时,可能与 Backbone 有关。当我在主页上时,条形码扫描运行良好,但一旦我更改页面,它就会冻结并且我收到警告。

索引.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/main.css" />
        <title>Project</title>
    </head>
    <body>
        <div id="app"></div>
        <script type="text/javascript" src="cordova.js"></script>
        <script data-main="js/main" src="js/lib/require.js"></script>
    </body>
</html>

plugin_cordova.js

cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
    {
        "file": "plugins/com.phonegap.plugins.barcodescanner/www/barcodescanner.js",
        "id": "com.phonegap.plugins.barcodescanner.BarcodeScanner",
        "clobbers": [
            "cordova.plugins.barcodeScanner"
        ]
    }
]
});

我的骨干观点

define(['jquery','underscore','backbone'], function($, _, Backbone){
  var myView = Backbone.View.extend({
    initialize: function(){
      /* ... */
    },
    render: function(ev){
      /* ... */
    }
    startScan: function(e){
      e.preventDefault();
      cordova.plugins.barcodeScanner.scan(this.scanSuccess,this.scanError);
    },
    scanSuccess: function(response){
      alert("We got a barcode\n" +
            "Result: " + response.text + "\n" +
            "Format: " + response.format + "\n" +
            "Cancelled: " + response.cancelled);
    },
    scanError: function(error){
      alert('Error: '+error);
    },
  });
  return myView;
});

谢谢!

4

1 回答 1

2

我最近也面临类似的警告。经过一番调查,同时多次触发条码扫描器会出现这个问题。这可能是由于触发扫描仪的按钮多次绑定所致。

于 2014-01-02T05:03:50.610 回答