qrcode.html 4.05 KB
<!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>
		<script type="text/javascript" src="../../js/qrcode.js"></script>
		<script type="text/javascript">
			var ws=null,wo=null;
			var scan=null,domready=false;
			// H5 plus事件处理
			
			function plusReady(){
				if(ws||!window.plus||!domready){
					return;
				}
				
				// 获取当前窗口对象
				ws=plus.webview.currentWebview();
				ws.setStyle({
					zindex:1
				});
				wo=ws.opener();
				// 开始扫描
				var filter = [plus.barcode.QR,plus.barcode.EAN13,plus.barcode.EAN8,plus.barcode.CODE128];
				var styles = {frameColor: "#29E52C",scanbarColor: "#29E52C",background: ""}
				ws.addEventListener('show', function(){
					scan=new plus.barcode.Barcode('bcid',filter,styles);
				    scan.onmarked=onmarked;
				    scan.onerror = onerror;
				    scan.start({conserve:true,filename:'_doc/barcode/'});
				}, false);
				// 显示页面并关闭等待框
			    ws.show('pop-in');
//			    wo.evalJS('closeWaiting()');
			}
			if(window.plus){
				plusReady();
			}else{
				document.addEventListener('plusready', plusReady, false);
			}
			// 监听DOMContentLoaded事件
			document.addEventListener('DOMContentLoaded', function(){
				domready=true;
				plusReady();
			}, false);
			// 扫描失败
			function onerror(e){
				mui.alert(e)
			}
			// 二维码扫描成功
			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;
					case plus.barcode.CODE128:
					type = 'CODE128';
					break;
			    	default:
			    	type = '其它'+type;
			    	break;
			    }
			    result = result.replace(/\n/g, '');
			    scan.close();
				// 关闭当前页面webView
				/*var allws = plus.webview.all();
				var len = allws.length;

				for(var i=0;i<len;i++){
					console.log('webview'+i+': '+ allws[i].id);
				}*/
//				console.log(ws.id)
//				ws.close();
				
				/*common.openwin('../acceptance/acc_list',{ result: result }, {
					titleText: '药品信息'
				});
				
				//处理返回事件
                plus.key.addEventListener('backbutton', function() {
                    plus.webview.currentWebview().close();
                })*/

			    wo.evalJS("scaned('"+ type +"','"+ result +"','"+ file +"');");
			   
			    back();
			}
			// 从相册中选择二维码图片 
			function scanPicture(){
			    plus.gallery.pick(function(path){
					var filter = [plus.barcode.QR,plus.barcode.EAN13,plus.barcode.EAN8,plus.barcode.CODE128];
				    plus.barcode.scan(path,onmarked,function(error){
						plus.nativeUI.alert('无法识别此图片');
					},filter);
			    }, function(err){
			        console.log('Failed: '+err.message);
			    });
			}
					
		</script>

		<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: 44px;
				position: absolute;
				bottom: 0px;
				line-height: 44px;
				text-align: center;
				color: #FFF;
			}
			.fbt {
				width: 49%;
				height: 100%;
				background-color:#f2a11c;
				float: left;
			}
			.scanPicture{
				margin-left: 5px;
			}
			.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;width:100vw;height:100vh;overflow: hidden;">
		<div id="bcid">
			<div style="height:40%"></div>
			<p class="tip">...载入中...</p>
		</div>
		<footer>
			<div class="fbt" onclick="back()">取  消</div>
			<div class="fbt scanPicture" onclick="scanPicture()">从相册选择二维码</div>
		</footer>
	</body>
</html>