我们在使用微信开放平台的工具包 JS-SDK
时,可以直接使用微信自带的扫一扫能力,来获取一维码和二维码内容。先来看看腾讯的官方接口。
调起微信扫一扫接口:
wx.scanQRCode({
needResult: 0, // 默认为 0 ,扫描结果由微信处理,1则直接返回扫描结果
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当 needResult 为 1 时,扫码返回的结果
}
});
在使用过程中我们发现,当 needResult 为 1 时,对二维码的扫码结果完全一致没有异议,但是扫描一维码的时候,会在扫描结果前加上一维码的码制。如内容为 123456789
的一维码,扫描结果可能变成了 EAN_13,123456789
,我们需要去掉前面的码制 EAN_13,
才能得到正确的结果。
改造后的接口:
wx.scanQRCode({
needResult: 1, // 默认为 0 ,扫描结果由微信处理,1则直接返回扫描结果
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当 needResult 为 1 时,扫码返回的结果
var resultArr = result.split(','); // 扫描结果以逗号分割数组
var codeContent = resultArr[resultArr.length - 1]; // 获取数组最后一个元素,也就是最终的内容
}
});
通过以上简单修改,我们就可以获取到一维码和二维码的真实内容 codeContent
了。
注意:如果条码或二维码中原本就包含逗号,则该方法无效,可能导致获取到的内容错误或缺失。如果有更好的方法,希望大家不吝赐教。
版权属于:瞭月
本文链接:https://www.lervor.com/archives/205/
版权声明:本文为瞭月原创文章,转载请附上原文出处链接和本声明。