uniapp 对身份证、户口本进行拍照获取数据的解决方案
提示:uniapp 官方没有封装组件及api

一、uniapp 插件市场有许多大牛封装的组件,不过大部分都是收费的

对于这些别人封装的插件具体如何试用我就不阐述了
在这里插入图片描述

二、拍照转base64码 提交给后端

我们要做的是对户口本、身份证进行拍照自动识别内容

handClickScanning() {
	// 允许从相机和相册扫码
	let that = this;
	
	//与后端规范好户口本、身份证的图片类型:1/2		
	if(this.photoImg.img_type==0){
		uni.showToast({
		title:'请选择你要上传的图片类型',
		icon:'none'
		})
		return;
	}
	
	uni.chooseImage({
		count: 1, //可以选择图片的张数
		sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
		//sourceType: ['album'], //album 从相册选图,camera 使用相机,默认二者都有
		success: function(res) {
		//只能选择一张图片
			that.handControllGetBase64(res.tempFilePaths[0], base => {
				//base 为图片的base64码
				that.photoImg.id_card_img = base;
			
				//调取后端接口
				Service.apiPhotoIdCard(that.photoImg).then(res => {
					uni.hideLoading();
					if (res.RetCode == 100) {
					
					}else{
						uni.showToast({
							title:res.Msg,
							icon:'none'
						})
					}
				}).catch(err => {
					console.log(err)
				})
			});				//返回结果
		}
	}); 
},
handControllGetBase64(file, callback) {
		//h5不可用
		uni.saveFile({
			tempFilePath: file,
			success: (saveFile) => {
				//pathToBase64 为外部引入的插件 下载地址在下方
				pathToBase64(saveFile.savedFilePath).then(base64 => {
					//用完就删
					uni.removeSavedFile({
						filePath: saveFile.savedFilePath
					});
					//返回
					callback(base64);
				})
			}
		});
},

pathToBase64为 DCloud插件市场插件路径转base64下载地址

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐