我一直在尝试解码这个有JSON数据的QR码。
在在线工具中,它是工作示例https://www.onlinebarcodereader.com/。它读取数据。我正在以编程方式尝试。
下面是我的代码:
handleFileChange(event) {
const {target} = event;
const {files} = target;
if (files && files[0]) {
const reader = new FileReader();
// reader.onloadstart = () => this.setState({loading: true});
reader.onload = async event => {
this.setState({
data: event.target.result,
loading: false
});
// const img = document.getElementById('img');
console.log(event.target.result);
let result;
try {
var qr = new QrCode();
// set the callback that receives the decoded content as the tasks is async
qr.callback = function(decodedDATA){
alert(decodedDATA);
};
// event.target.result is
//data:image/png;base64,iVBORw0KGgoAAAANSU...
qr.decode(event.target.result);
} catch (err) {
console.log(err);
}
console.log(result);
};
reader.readAsDataURL(files[0]);
}
}
<input
id="img"
type="file"
accept="image/*"
onChange={this.handleFileChange}
/>
我已经使用这个库https://www.npmjs.com/package/qrcode-reader它有错误,无法读取数据超过某些字符,因此我得到错误。
我也尝试过使用zxing库,但我使用服务器端渲染,并得到错误“窗口未定义”。有很多配置需要在webpack中完成,但我不知道这些。
我正在寻找简单的解决方法。下一步我可以尝试什么?
1条答案
按热度按时间7uzetpgm1#
找到了这个库的解决方案qrcode-decoder.
在我的代码里