uniApp微信小程序与钉钉h5页面的扫码功能区别于注意点

uniApp微信小程序与钉钉h5页面的扫码功能避坑

   今天在做小程序扫码功能的时候,遇到了钉钉h5应用扫码报错的bug,微信开发者工具却没有复现,当时很是头疼,后来耗费2根头发才解决了问题,具体内容及解决方法如下:

经过查阅官方文档,发现钉钉应用开发平台和uniApp的返回值不一样!!(头大,为什么还没有统一),扫码的方法如下:

uni:

let that = this;
uni.scanCode({
// onlyFromCamera: true,
success: function (res) {
uni.showToast({
title: ‘扫码成功’,
duration: 1000
});
that.inputClearValue = JSON.parse(JSON.stringify(res)).result;
},
fail: (err) => {
// 扫码失败的逻辑处理
uni.showToast({
title: ‘扫码失败’,
duration: 1500
});
}
});

钉钉:

let that = this;
dingtalk.biz.util.scan({
type: ‘all’, // type 为 all、qrCode、barCode,默认是all。
onSuccess: function (data) {
uni.showToast({
title: ‘扫码成功’,
duration: 1000
});
that.inputClearValue = JSON.parse(JSON.stringify(data)).text;
},
onFail: function (err) {
uni.showToast({
title: ‘扫码失败’,
duration: 1500
});
}
})

特别注意:(1)uni的扫码方法是内置的scanCode方法,钉钉是biz.util.scan,两者都需要我们进行安装引用(2)this的指向问题,在内置的方法里,this是获取不到的,要用that代替!(3)看到两者的差异,钉钉的返回内容是用test拿到,而uni是用result,当然两者返回的都是[object Obejct],需要我们用json进行转换。
好了,到此为止,希望可以帮到你处理一些问题,记得点赞收藏哟,亲!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值