MUI 二维码扫描并跳转

 

1 首页 index.html

<li id="html/barcode.html" onclick="clicked(this.id)">
        <span class="item">Barcode
          <div class="chs">二维码扫描</div>
        </span>
</li>

 

2 二维码页面:html/barcode.html

<!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>Hello H5+</title>
    <script type="text/javascript" src="../js/common.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();
        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);
    // 二维码扫描成功
    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, '');
       
        //分析扫描结果:是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();//返回上一页
                }
            }, '', ['打开', '取消']);
        } else{
            back();//返回上一页
            plus.nativeUI.alert(result);
        }
    }
    // 从相册中选择二维码图片 
    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="../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: 44px;
                position: absolute;
                bottom: 0px;
                line-height: 44px;
                text-align: center;
                color: #FFF;
            }
            .fbt {
                width: 50%;
                height: 100%;
                background-color: #007500;
                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>

 

posted @ 2017-03-22 18:14  依然范儿特西  阅读(7372)  评论(8编辑  收藏  举报