APP端----扫码uni.scanCode()不灵敏的问题
app端uniapp的扫码uni.scanCode()不灵敏,可以考虑换nvue的 barcode组件扫码, 非常好用
·
直接用uni.scanCode()做扫码功能碰到了扫描不识别的问题,而且是经常出现识别不到,所以就用nvue的barcode组件写了扫码试试,用着比 scanCode()方法强多了。
App-nvue,支持barcode组件,建议使用nvue方式
应用流程
1.点击扫码图标---跳转路由到nvue的扫码组件页面
2.获取二维码内的参数,携带参数返回上一页
3.获取返回的参数进行逻辑交互
4.交互完成,扫码结束。
下面代码是我此次项目用的代码:
<template>
<view class="saom" :style="{ width: windowWidth, height: windowHeight }">
<barcode id='1' class="barcode" :style="{ width: windowWidth, height: windowHeight }" :autostart="true" ref="barcode" frameColor="#1C86EE" scanbarColor="#1C86EE" :filters="fil" @marked="success1" @error="fail1"></barcode>
</view>
</template>
<script>
export default {
data() {
return {
fil: [0,3,12],
windowWidth: '', //屏幕可用宽度
windowHeight: '', //屏幕可用高度
}
},
onLoad() {
this.saomhig();
},
methods: {
success1(res) {
let datasp =JSON.parse(res.detail.message)
console.log("success1:" +datasp);
this.scaoyes(datasp)
},
fail1(e) {
console.log("fail1:" + JSON.stringify(e));
uni.navigateBack();
},
toStart() {
console.log("开始扫码")
this.$refs.barcode.start({
vibrate:false,
sound:'default'
});
},
//设置
scaoyes(data) {
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2]; //上一个页面
//直接调用上一个页面的setImage()方法,把数据存到上一个页面中去
prevPage.$vm.saosuccess(data);
uni.navigateBack();
},
// 初始化高度
saomhig(){
let _this = this;
uni.getSystemInfo({
success: function(res) {
_this.windowWidth = res.windowWidth;
_this.windowHeight = res.windowHeight;
}
});
}
}
}
</script>
<style scoped>
</style>
更多推荐
已为社区贡献2条内容
所有评论(0)