1.代码如下:
scanQRcode() {
uni.scanCode({
scanType: [
"barCode", "qrCode", "datamatrix", "pdf417"
],
autoDecodeCharset: true, //是否启用自动识别字符编码功能,默认为否
autoZoom: true, //是否启用自动放大,默认启用
barCodeInput: true, //是否支持手动输入条形码
hideAlbum: false, //是否隐藏相册(不允许从相册选择图片),只能从相机扫码。默认值为 false。
success: async (res) => {
uni.showToast({
title: '扫码成功',
icon: 'success'
})
const jsonData = res.result; // 将扫码结果保存到scanResult变量中
this.scanResult = JSON.parse(jsonData).aid
console.log(this.scanResult)
const result = await getScanCodes(this.scanResult)
// 在这里处理扫描成功后的逻辑
this.scanQRcodeskip(result.data)
},
fail: function(error) {
uni.showToast({
title: '扫码失败,没有这个资产',
icon: 'success'
})
console.log('扫码失败');
// 在这里处理扫描失败后的逻辑
},
//complete 接口调用结束的回调函数(调用成功、失败都会执行)
// complete: function(flag) {
// console.log('扫码失败12323');
// }
});
},
2.扫码之后拿到aid, 发请求 , 把获取的数据 传给其他页面 , 然后跳转页面
scanQRcodeskip(params) {
console.log(params)
uni.navigateTo({
url: '/pages/inventory/inventoryTask/scanDetail?params=' + encodeURIComponent(JSON.stringify(
params))
});
},
3. 另一个页面 用onLoad 来获取传过来的数据
onLoad(query) {
if (query.params) {
const params = JSON.parse(decodeURIComponent(query.params));
// 现在 params 变量包含了您传递的参数对象
this.formData = params
this.formList = JSON.parse(JSON.stringify(params))
}
},
4. 拿到数据之后 渲染页面