我们平时经常会遇到扫描扫码,扫描实物等类似场景,之前工作中遇到一个需求就是用户扫一扫获取当前物品、艺术品的相关信息,后来这块没有做,这几天不忙,刚好趁此机会写个demo,实现相关功能。
小程序可以使用uniapp或者微信原生来进行开发,其相关API非常类似。查阅相关文档发现小程序有个
uni.createCameraContext()
这个ApI可以创建并返回 camera 组件的上下文 cameraContext 对象。
利用这个API结合camera组件即可实现区域摄像头,在不需要用户收到触发的情况下实时获取当前画面信息,来做进一步处理。
代码如下:
<camera device-position="back" flash="off" @error="error" style="width: 100%; height: 300px;"></camera>
methods: {
takePhoto() {
var that=this
const ctx = uni.createCameraContext();
ctx.takePhoto({
quality: 'high',
success: (res) => {
console.log(res)
that.src = res.tempImagePath //获取到的画面信息
}
});
},
error(e) {
console.log(e.detail);
}
}
我这里是写了个定时来实时获取,如果你有更好的方式,欢迎在评论区发表。
onLoad() {
var that=this
this.timer=setInterval(function(){
that.takePhoto()
},1000)
},
到此结束。