html5二维码扫描功能实现

html5中可以使用二维码扫描,也可以从相册中选择二维码识别,代码如下    
    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();
            });
            // 显示页面并关闭等待框
            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 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 = "其它";
                    break;
            }
            result = result.replace(/\n/g, '');
            wo.evalJS("scaned('" + type + "','" + result + "','" + file + "');");
            plus.webview.currentWebview().close();
            back();
        }
        // 从相册中选择二维码图片
        function scanPicture() {
            plus.gallery.pick(function (path) {
                plus.barcode.scan(path, onmarked, function (error) {
                    plus.nativeUI.alert("无法识别此图片");
                });
            }, function (err) {
      
            });
        }

你可能感兴趣的:(Web前端,html5,二维码,web,javascript,java)