<!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"/>
<title>扫一扫</title>
<link rel="stylesheet" href="../../bower_components/mui/css/mui.css">
<link rel="stylesheet" href="../../static/css/style.css" />
<script type="text/javascript" src="../../bower_components/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../bower_components/mui/js/mui.min.js"></script>
<script type="text/javascript" src="../receipt/js/common.js"></script>
<script type="text/javascript" src="../../static/js/style.js" ></script>
<script type="text/javascript">
var ws=null,wo=null;
var scan=null,domready=false;
// H5 plus事件处理
function plusReady(){
// plus.navigator.setStatusBarBackground('#000');
if(ws||!window.plus||!domready){
return;
}
// 获取窗口对象
ws=plus.webview.currentWebview();
wo=ws.opener();
// 开始扫描
ws.addEventListener('show', function(){
scan=new plus.barcode.Barcode('bcid');
scan.onmarked=onmarked;
scan.start({conserve:true,filename:'_doc/barcode/'});
}, false);
// 显示页面并关闭等待框
ws.show('pop-in');
}
if(window.plus){
plusReady();
}else{
document.addEventListener('plusready', plusReady, false);
}
// 监听DOMContentLoaded事件
document.addEventListener('DOMContentLoaded', function(){
domready=true;
plusReady();
}, false);
try{
// 二维码扫描成功
function onmarked(type, result, file){
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;
}
resultresult = result.replace(/\n/g, '');
//分析扫描结果:是URL就跳转 ,不是就提示
if(result.indexOf('http://')==0 || result.indexOf('https://')==0){
// plus.nativeUI.confirm(result, function(i){
// if(i.index == 0){
//
// back();//返回上一页
// plus.runtime.openURL(result);
// }else{
// back();//返回上一页
// }
// }, '', ['打开', '取消']);
console.log(result);
// if(result.indexOf("toOpenApp") > -1) {
var arrUrl = result.indexOf("?");
var id = result.substr(arrUrl).substring(4);
var niuId = localStorage.getItem("niuId");
var token = localStorage.getItem("token");
localStorage.setItem("receiptId", id);
$.post(netAddress + '/voucher/scanCodeDeil', {
id: id,
niuId: niuId,
token:token
}, function(data) {
console.log((JSON.stringify(data)));
if(data.resultCode == 1000) {
mui.openWindow({
createNew: true,
id:'borrow',
url:'../receipt/borrow.html'
// styles: {
// popGesture:"close"
// },
// show:{
// aniShow:'pop-in'
// },
// waiting:{
// autoShow:true
// }
});
} else {
mui.alert(data.error);
back();//返回上一页
}
})
// }
} else{
back();//返回上一页
plus.nativeUI.alert(result);
}
}
}catch(e){
alert(e.message);
}
// 从相册中选择二维码图片
function scanPicture(){
plus.gallery.pick(function(path){
plus.barcode.scan(path,onmarked,function(error){
plus.nativeUI.alert('无法识别此图片');
});
}, function(err){
plus.nativeUI.alert('Failed: '+err.message);
});
}
</script>
<link rel="stylesheet" href="../receipt/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;
}
footer {
width: 100%;
height: 46px;
position: absolute;
bottom: 0px;
line-height: 44px;
text-align: center;
color: #FFF;
}
.fbt {
width: 50%;
height: 100%;
background-color: #fa5e25;
float: left;
}
.fbt:active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.5);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.5);
}
</style>
</head>
<body style="background-color: #000000;">
<div id="bcid">
<div style="height:40%"></div>
<p class="tip">...载入中...</p>
</div>
<footer>
<div class="fbt" onclick="back()">取 消</div>
<div class="fbt" onclick="scanPicture()">从相册选择二维码</div>
</footer>
</body>
</html>
3 个回复
4***@qq.com (作者)
不要沉啊,,有大神知道吗
apche
我也遇到了
Dr
在较高的Android系统中,调用摄像头需要进行动态调用,只在manifest.json中配置的权限默认为询问,但是程序运行过程中并没有询问,也就获取不到,最终导致程序崩溃,解决问题的方法是手动到应用权限那里把它改成允许,或者打包程序升级来解决
l***@163.com
设置权限之后还是闪退
2018-05-04 17:36
1***@163.com
解决了吗 遇到类似的问题 真机运行可以 打包候就失效
2018-06-23 15:09