標籤:read on() *** 資料 截取 發送 support 相機 port
移動端掃描身份證擷取身份證資訊(前端部分)
最近做了個掃描身份證的功能主要分以下幾個步驟
1:使用H5+調用手機底層相機拍照功能
if(window.plus){playCamera();}else{ document.addEventListener( "plusready",playCamera(), false);}
調用相機拍照:
playCamera: function(){var _self=Ext.getCmp("add_client_view"); var cmr = plus.camera.getCamera(); var res = cmr.supportedImageResolutions[0];var fmt = cmr.supportedImageFormats[0];cmr.captureImage( function( path ){_self.GetBase64Code(path);},function( error ) {alert( "Capture image failed: " + error.message );} ); },
2:將擷取到的圖片轉換成base64格式的資料
這裡轉換base64格式照片有2種方法:
(1): 使用H5的 FileReader 根據圖片路勁轉換成base64格式圖片;
//將圖片轉換為base64格式 Img2dataURL : function(path){ plus.io.resolveLocalFileSystemURL(path, function(entry){ entry.file(function(file){ debugger var reader = new plus.io.FileReader(); reader.onload = function (e) { imgBase64=e.target.result; console.log("****"+e.target.result); }; reader.readAsDataURL(file); },function(e){ Ext.toast("讀寫出現異常: " + e.message ); }) }) },
(2):使用H5+提供的Bitmap原生圖片對象
具體方法請看這裡http://www.html5plus.org/doc/zh_cn/nativeobj.html#plus.nativeObj.Bitmap;
有詳細說明
GetBase64Code:function(path){ var bitmap = new plus.nativeObj.Bitmap("xxx"); // 從本地載入Bitmap圖片將圖片轉換為base64格式 bitmap.load(path,function(){ var base4=bitmap.toBase64Data(); var datastr=base4.split(‘,‘,3);//截取掉沒用的首碼 var imgbase64 = []; if(datastr.length>1) { imgbase64.push(datastr[1]); }else { imgbase64.push(datastr[0]); } console.log(imgbase64); var traceNo=Utils.genTrn();//流水號//然後就是發送ajax請求 },function(e){ console.log(‘載入圖片失敗:‘+JSON.stringify(e)); }); },
(3)調用阿里身份證掃描資訊介面;擷取身份證資訊;
移動端掃描身份證擷取擷取身份證資訊。