我尝试在新界面监听物理返回按键,然后手动通过mui.openWindow跳转到二维码扫描界面,并添加createNew:true属性,但是无效,请问这种问题该怎么解决?
效果:
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="HandheldFriendly" content="true" />
<meta name="MobileOptimized" content="320" />
<script src="js/mui.min.js"></script>
<link href="css/mui.min.css" rel="stylesheet" />
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
<style type="text/css">
#bcid {
width: 100%;
position: absolute;
top: 0px;
bottom: 44px;
text-align: center;
}
.tip {
color: #FFFFFF;
font-weight: bold;
text-shadow: 0px -1px #103E5C;
}
</style>
</head>
<body style="background-color: #000000;">
<header class="mui-bar mui-bar-nav myColor" style="padding-top: 10px;">
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left" style="color: #ffffff;"></a>
<h1 id="title" class="mui-title" style="color: #ffffff;">二维码扫描</h1>
</header>
<div class="mui-content">
<div id="bcid">
<div style="height:40%"></div>
<p class="tip">Loading...</p>
</div>
</div>
<script type="text/javascript" src="../js/common.js"></script>
<script type="text/javascript">
mui.init();
var sData = null;
var sTitle = null;
var currentWebview = null,
opener = null;
var scan = null,
domready = false;
mui.plusReady(function() {
//获取传递过来的值,设置顶部标题
sData = plus.webview.currentWebview();
sTitle = sData.sendTitle;
var title = document.getElementById("title");
title.innerHTML = sTitle;
});
// 开始扫描,H5 plus事件处理
function startScan() {
if(currentWebview || !window.plus || !domready) {
return;
}
// 获取窗口对象
currentWebview = plus.webview.currentWebview();
opener = currentWebview.opener();
// 开始扫描
currentWebview.addEventListener('show', function() {
scan = new plus.barcode.Barcode('bcid');
scan.onmarked = onmarked;
scan.start({
conserve: true,
filename: '_doc/barcode/'
});
}, false);
// 显示页面并关闭等待框
currentWebview.show('pop-in');
}
if(window.plus) {
startScan();
} else {
document.addEventListener('plusready', startScan, false);
}
// 监听DOMContentLoaded事件
document.addEventListener('DOMContentLoaded', function() {
domready = true;
startScan();
}, false);
// 二维码扫描成功的回调函数
function onmarked(type, result, file) {
console.log("0956type=" + type + ",result=" + result + ",file=" + file);
//跳转到单据信息界面
mui.openWindow({
url: "bills-info.html",
id: "bills-info",
extras: {
result: result,
sendTitle: sTitle,
type: sData.type
},
waiting: {
title: '正在加载...', //等待对话框上显示的提示内容
}
});
// if(type==0){
// mui.toast("扫描结果:"+result);
// }
// switch(type) {
// case plus.barcode.QR:
// type = 'QR';
// break;
// case plus.barcode.EAN13:
// type = 'EAN13';
// break;
// case plus.barcode.EAN8:
// type = 'EAN8';
// break;
// default:
// type = '其它' + type;
// break;
// }
//分析扫描结果:是URL就跳转 ,不是就提示
// if(result.indexOf('http://') == 0 || result.indexOf('https://') == 0) {
// plus.nativeUI.confirm(result, function(i) {
// if(i.index == 0) {
// mui.toast("11"+result);
// } else {
// mui.toast("22"+result);
// }
// }, '', ['打开d', '取消q']);
// } else {
// mui.toast("33"+result);
// }
}
</script>
</body>
</html>
Salazar (作者)
这个已经是完整的html文件了,是可以扫描二维码的,就是界面跳转返回后会出现黑屏的现象,但是控制台又没有任何错误提示
2017-06-15 20:09