| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | <head> |
| | | <meta charset="utf-8"/> |
| | | <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"/> |
| | | <meta name="HandheldFriendly" content="true"/> |
| | | <meta name="MobileOptimized" content="320"/> |
| | | <meta charset="utf-8" /> |
| | | <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" /> |
| | | <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; |
| | | // H5 plus事件处理 |
| | | function plusReady(){ |
| | | // 获取窗口对象 |
| | | ws=plus.webview.currentWebview(); |
| | | nv=ws.getTitleNView(); |
| | | wo=ws.opener(); |
| | | // 开始扫描 |
| | | ws.addEventListener('show', function(){ |
| | | scan=new plus.barcode.Barcode('bcid',[plus.barcode.QR,plus.barcode.EAN8,plus.barcode.EAN13],{frameColor:'#00FF00',scanbarColor:'#00FF00'}); |
| | | scan.onmarked=onmarked; |
| | | scan.start({conserve:true,filename:'_doc/barcode/'}); |
| | | createSubview(); |
| | | }, false); |
| | | // 显示页面并关闭等待框 |
| | | ws.show('pop-in'); |
| | | } |
| | | document.addEventListener('plusready', plusReady, false); |
| | | var ws = null, |
| | | wo = null; |
| | | var scan = null; |
| | | // H5 plus事件处理 |
| | | function plusReady() { |
| | | // 获取窗口对象 |
| | | ws = plus.webview.currentWebview(); |
| | | nv = ws.getTitleNView(); |
| | | wo = ws.opener(); |
| | | // 开始扫描 |
| | | ws.addEventListener('show', function() { |
| | | scan = new plus.barcode.Barcode('bcid', [plus.barcode.QR, plus.barcode.EAN8, plus.barcode.EAN13], { |
| | | frameColor: '#00FF00', |
| | | scanbarColor: '#00FF00' |
| | | }); |
| | | scan.onmarked = onmarked; |
| | | scan.start({ |
| | | conserve: true, |
| | | filename: '_doc/barcode/' |
| | | }); |
| | | createSubview(); |
| | | }, false); |
| | | // 显示页面并关闭等待框 |
| | | ws.show('pop-in'); |
| | | } |
| | | document.addEventListener('plusready', 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(/\r\n/g, ''); |
| | | wo.evalJS("scaned('"+ type +"','"+ result +"','"+ file +"');"); |
| | | back(); |
| | | } |
| | | // 创建子窗口 |
| | | var view = null; |
| | | function createSubview(){ |
| | | view = new plus.nativeObj.View('nbutton', { |
| | | bottom: '20px', |
| | | left: '30%', |
| | | width: '40%', |
| | | height: '44px' |
| | | }, [{ |
| | | tag: 'rect', |
| | | id: 'rect', |
| | | rectStyles: { |
| | | radius: '8px', |
| | | color: 'rgba(255,0,0,0.8)' |
| | | }},{ |
| | | tag: 'font', |
| | | id: 'text', |
| | | text: '暂 停', |
| | | textStyles: { |
| | | color: '#FFFFFF' |
| | | } |
| | | }]); |
| | | // 处理事件 |
| | | view.addEventListener('click', function(e){ |
| | | switchScan(); |
| | | }, false); |
| | | view.addEventListener('touchstart', function(e){ |
| | | view.drawRect({ |
| | | radius: '8px', |
| | | color: 'rgba(255,0,0,0.5)' |
| | | }, {}, 'rect'); |
| | | }, false); |
| | | view.addEventListener('touchend', function(e){ |
| | | view.drawRect({ |
| | | radius: '8px', |
| | | color: 'rgba(255,0,0,0.8)' |
| | | }, {}, 'rect'); |
| | | }, false); |
| | | ws.append(view); |
| | | } |
| | | // 开关闪光灯 |
| | | var bFlash = false; |
| | | var AVCaptureDevice=null; |
| | | var Camera=null; |
| | | function switchFlash(){ |
| | | bFlash = !bFlash; |
| | | scan.setFlash(bFlash); |
| | | ws.setStyle({titleNView: { |
| | | buttons: [{ |
| | | fontSrc: '_www/helloh5.ttf', |
| | | text: (bFlash?'\ue400':'\ue401'), |
| | | fontSize: '18px', |
| | | onclick: 'javascript:switchFlash()' |
| | | }] |
| | | }}); |
| | | } |
| | | // 切换扫描 |
| | | var bScan = false; |
| | | function switchScan(){ |
| | | if(bScan){ |
| | | scan.start({conserve:true, filename:'_doc/barcode/'}); |
| | | view&&(view.drawText('暂 停', {}, {color:'#FFFFFF'}, 'text')); |
| | | }else{ |
| | | scan.cancel(); |
| | | view&&(view.drawText('开 始', {}, {color:'#FFFFFF'}, 'text')); |
| | | } |
| | | bScan=!bScan; |
| | | } |
| | | // 二维码扫描成功 |
| | | 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(/\r\n/g, ''); |
| | | wo.evalJS("scaned('" + type + "','" + result + "','" + file + "');"); |
| | | back(); |
| | | } |
| | | // 创建子窗口 |
| | | var view = null; |
| | | |
| | | function createSubview() { |
| | | view = new plus.nativeObj.View('nbutton', { |
| | | bottom: '20px', |
| | | left: '30%', |
| | | width: '40%', |
| | | height: '44px' |
| | | }, [{ |
| | | tag: 'rect', |
| | | id: 'rect', |
| | | rectStyles: { |
| | | radius: '8px', |
| | | color: 'rgba(255,0,0,0.8)' |
| | | } |
| | | }, { |
| | | tag: 'font', |
| | | id: 'text', |
| | | text: '暂 停', |
| | | textStyles: { |
| | | color: '#FFFFFF' |
| | | } |
| | | }]); |
| | | // 处理事件 |
| | | view.addEventListener('click', function(e) { |
| | | switchScan(); |
| | | }, false); |
| | | view.addEventListener('touchstart', function(e) { |
| | | view.drawRect({ |
| | | radius: '8px', |
| | | color: 'rgba(255,0,0,0.5)' |
| | | }, {}, 'rect'); |
| | | }, false); |
| | | view.addEventListener('touchend', function(e) { |
| | | view.drawRect({ |
| | | radius: '8px', |
| | | color: 'rgba(255,0,0,0.8)' |
| | | }, {}, 'rect'); |
| | | }, false); |
| | | ws.append(view); |
| | | } |
| | | // 开关闪光灯 |
| | | var bFlash = false; |
| | | var AVCaptureDevice = null; |
| | | var Camera = null; |
| | | |
| | | function switchFlash() { |
| | | bFlash = !bFlash; |
| | | scan.setFlash(bFlash); |
| | | ws.setStyle({ |
| | | titleNView: { |
| | | buttons: [{ |
| | | fontSrc: '_www/helloh5.ttf', |
| | | text: (bFlash ? '\ue400' : '\ue401'), |
| | | fontSize: '18px', |
| | | onclick: 'javascript:switchFlash()' |
| | | }] |
| | | } |
| | | }); |
| | | } |
| | | // 切换扫描 |
| | | var bScan = false; |
| | | |
| | | function switchScan() { |
| | | if (bScan) { |
| | | scan.start({ |
| | | conserve: true, |
| | | filename: '_doc/barcode/' |
| | | }); |
| | | view && (view.drawText('暂 停', {}, { |
| | | color: '#FFFFFF' |
| | | }, 'text')); |
| | | } else { |
| | | scan.cancel(); |
| | | view && (view.drawText('开 始', {}, { |
| | | color: '#FFFFFF' |
| | | }, 'text')); |
| | | } |
| | | bScan = !bScan; |
| | | } |
| | | </script> |
| | | <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/> |
| | | <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: 0px; |
| | | text-align: center; |
| | | } |
| | | .tip { |
| | | color: #FFFFFF; |
| | | font-weight: bold; |
| | | text-shadow: 0px -1px #103E5C; |
| | | } |
| | | #bcid { |
| | | width: 100%; |
| | | position: absolute; |
| | | top: 0px; |
| | | bottom: 0px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .tip { |
| | | color: #FFFFFF; |
| | | font-weight: bold; |
| | | text-shadow: 0px -1px #103E5C; |
| | | } |
| | | </style> |
| | | </head> |
| | | <body style="background-color:#000000;"> |