uniapp扫码

以uuid为例,普通二维可能是直接的UUID值,也可能是小程序后台配置的打开普通链接打开小程序,如 https://yourdomain.com/qr/uuid值

其中uuid值为字符、数字组合。以下为事例代码

onLoad(opt) {
	_this = this
	console.log(opt)
	//传参数 uuid
	let uuid = opt.uuid 
	if(uuid && uuid.indexOf('/') !== -1){
		this.get_parse_qr(uuid)
	}else{
		this.uuid = opt.uuid || ''
	} 
	//扫普通二维码
	if(opt.q){
		this.get_parse_qr(opt.q)
	}   
	//opt.scene 是小程序码
},

methods: {
	get_parse_qr(q){ 
		let domain = this.config.domain;
		let text = decodeURIComponent(q);
		//小程序后台配置了 扫普通链接二维码打开小程序,值如 https://yourdomain.com/qr/
		//4是/qr/的长度
		let result = text.substr(domain.length+4);
		if(result){
			this.uuid = result
		}
	},
}

小程序内扫一扫

removeSpecialCharacters(input) {
	// 使用正则表达式匹配并去除 0x1D 字符
	return input.replace(/\u001d/g, ''); // 或者用 replaceAll 方法
},
open_qr() {
	uni.scanCode({
		scanType:['barCode','qrCode','datamatrix','pdf417'],
		success: function(res) {
			let d = _this.removeSpecialCharacters(res.result)
			console.log("res.charSet==",res.charSet) 
			console.log('条码类型:' + res.scanType);
			console.log('条码内容:' + d);  
		}
	});
},

在线生成普通二维码