zoukankan      html  css  js  c++  java
  • 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(/
    /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>
  • 相关阅读:
    【转】kafka&zookeeper集群搭建指南
    spark-streaming问题集锦
    Rokid开发者社区skill之【历史上的今天】
    jQuery+Ajax获取百度百科历史上的今天
    python+xpath+requests爬取维基百科历史上的今天
    jQuery请求维基百科[历史上的今天]
    Redis和Memcached比较
    [转]RosBridge小结
    [转]使用rosbridge协议实现安卓跟ros的解耦
    跨域访问之jsonp
  • 原文地址:https://www.cnblogs.com/richerdyoung/p/6601342.html
Copyright © 2011-2022 走看看