Cordova 3中的条码扫描器问题

时间:2013-10-14 10:38:57

标签: ios objective-c cordova ios7 barcode-scanner

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

它在XCode中抛出以下警告:

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

您对我如何解决此问题有任何想法吗?

编辑:

当我正在浏览应用时,它可能与Backbone有关。当我在主页上时,条形码扫描顺利进行,但是一旦我更改页面,它就会冻结,我收到了警告。

的index.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;
});

谢谢!

1 个答案:

答案 0 :(得分:2)

我最近也遇到了类似的警告。经过一些调查,同时触发条形码扫描器不止一次就会出现这个问题。这可能是由于多次绑定触发扫描仪的按钮。