微信等特殊浏览器,用微信的jssdk
普通浏览器里,只有上传图片,前端或者后端识别,前端的可以用jsqr这个库
参考代码:
import jsQR from "jsqr";
scanCodeTest() {
// #ifndef H5
uni.scanCode({
success: function(res) {
console.log(JSON.stringify(res));
}
});
// #endif
// #ifdef H5
console.log("h5 scan");
const that = this;
uni.chooseImage({
count: 1, //默认9
sourceType: ["album"], //从相册选择
success: function(res) {
console.log(res);
const file = res.tempFiles[0];
if (window.FileReader) {
const fr = new FileReader();
fr.readAsDataURL(file);
fr.onloadend = function(e: any) {
const base64Data = e.target.result;
console.log("base64Data", base64Data);
that.base64ToUint8ClampedArray(base64Data, function(imageData) {
console.log("imageData", imageData);
const code = jsQR(
imageData.data,
imageData.width,
imageData.height
);
console.log("jsQR解析", code);
});
};
}
}
});
// #endif
}
base64ToUint8ClampedArray(base64, callback) {
const img = new Image();
img.src = base64;
img.onload = function() {
const canvas = document.createElement("canvas");
const ctx = canvas.getContext("2d");
if (ctx) {
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
const imageData = ctx.getImageData(0, 0, img.width, img.height);
callback(imageData);
}
};
}
11 个回复
1***@qq.com
我实现了一个:https://juejin.cn/post/7216559027513442359
有用的话麻烦点个赞
Trust - 少说废话
H5 平台的 API,都是基于 W3C 的规范实现的。
目前 W3C 还没有这规范
JakeWarthon
啥时候能支持阿
2019-11-16 23:05
zzk
建议上传图片,后台解析二维码。类似于草料
8***@qq.com
h5你的现在可以扫码了吗?
JakeWarthon
您现在实现这个功能了吗
DCloud_heavensoft
如果是普通浏览器里,没有人做扫码,html5规范不支持。
如果是微信等特殊浏览器,用微信的jssdk
JakeWarthon
好的谢谢 但是就一点没办法了吗
2019-11-16 23:25
7***@qq.com
同问啊
zr12041019 - 个人学习
问一下楼主,请问你解决了没,最后是怎么实现的?????
全栈工程师 - 精通mui、uniapp,承接相关项目外包,解决各种疑难问题。有任何问题可以随时联系,QQ:419761282
H5不支持扫码识别,但是可以曲线救国,H5调出摄像头,传入影响后后台解析二维码再返回
王彬涛 - 微尘
qrcode-stream可以实现h5扫码识别
黑珀
有完整实例吗
2021-05-12 13:55
3***@qq.com
微信等特殊浏览器,用微信的jssdk
普通浏览器里,只有上传图片,前端或者后端识别,前端的可以用jsqr这个库
参考代码:
wentian
拍照浏览器会卡死,是哪里导致的问题
2021-12-22 11:20