<template>
<view class="container">
<barcode ref="barcode" @marked="onMarked" :flash="true" style="width: 750rpx; height: 1000rpx;" />
<view class="tips">请对准设备二维码</view>
</view>
</template>
<script>
export default {
onLoad() {
console.log('? nvue 页面加载成功');
},
onReady() {
// 动态申请摄像头权限
if (plus && plus.android) {
plus.android.requestPermissions(
['android.permission.CAMERA'],
function(res) {
console.log('摄像头权限结果:', res.granted);
},
function(err) {
console.error('权限申请失败:', err);
}
);
}
},
methods: {
onMarked(e) {
console.log('扫码结果:', e.detail);
const result = e.detail.message.trim();
const deviceNo = result.split(';')[0]; // 取前段
if (/^\d{15}$/.test(deviceNo)) {
// 返回并发送数据
const eventChannel = this.getOpenerEventChannel();
eventChannel.emit('scanResult', deviceNo);
uni.navigateBack();
} else {
uni.showToast({
title: '二维码内容不符合格式',
icon: 'none'
});
}
}
}
}
</script>
<style>
.container {
flex: 1;
flex-direction: column;
justify-content: center;
align-items: center;
}
.tips {
margin-top: 40rpx;
font-size: 28rpx;
color: #666;
}
</style>
2 个回复
8***@qq.com (作者)
对比了下官方:https://uniapp.dcloud.net.cn/component/barcode.html 发现可以了,但官方也无法识别想要的目标设备码。。。难受。。。
8***@qq.com (作者)
就是这种码,微信一下就能扫出来,但barcode一直没反应,换手机试一样扫不出来。