【发布时间】:2013-10-14 10:38:56
【问题描述】:
我在 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;
});
谢谢!
【问题讨论】:
-
使用barcodeScanner.js?
-
我确实在使用barcodescanner.js。我还使用 require.js 和主干来构建我的应用程序。事实上,条形码扫描在应用程序启动后运行良好(我得到了成功/错误回调和一切)。但是,当我浏览某些页面时,当我尝试启动扫描时,我得到了这个错误。我会用一些代码更新我的帖子。
-
@hussainShabbir 我放了一些代码。我开始认为它可能与骨干网有关......
标签: ios objective-c cordova ios7 barcode-scanner