<!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/frame/barCommon.js"></script>
<script type="text/javascript">
var ws=null,wo=null;
var scan=null,domready=false;
// H5 plus事件处理
function plusReady(){
alert('ws='+ws);
alert('window.plus=' + window.plus);
alert('domready='+domready);
if(ws||!window.plus||!domready){
return;
}
alert('进入了'+ws);
// 获取窗口对象
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/"});
});
// 显示页面并关闭等待框
ws.show("pop-in");
wo.evalJS("closeWaiting()");
}
if(window.plus){
alert('1');
plusReady();
}else{
alert('2');
document.addEventListener("plusready",plusReady,false);
alert('2.window.plus=' + window.plus);
}
// 监听DOMContentLoaded事件
document.addEventListener("DOMContentLoaded",function(){
alert('3');
alert('3.window.plus=' + window.plus);
domready=true;
plusReady();
},false);
// 二维码扫描成功
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;
}
result = result.replace(/\n/g, '');
wo.evalJS("scaned('"+ type +"','"+ result +"','"+ file +"');");
back();
}
// 从相册中选择二维码图片
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>
<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: 50%;
height: 100%;
background-color: #FFCC33;
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>
飘逸的厨子
- 发布:2016-09-13 17:51
- 更新:2016-09-13 18:02
- 阅读:7564
Trust - 少说废话
调用HTML5+相关的API,需要监听plusready事件。
请参考Hello5+示例项目中的写法,或mui封装的plusReady()方法。
document.addEventListener('plusready', plusReady);
function plusReady() {
// 这里调用HTML5+API
}
飘逸的厨子 (作者)
官方的例子,在Hbuilder里面运行是正常的,可以扫描二维码,在webstrom里面报plus未定义,你知道是怎么回事吗?
2016-09-14 09:50