以钉钉小程序为例。
1. 安装插件
npm install qr-image
2. 在组件内引入
const qrImage= require(‘qr-image’)
3. 转成base64格式的url
_arrayBufferToBase64(raw) {
var base64 = "";
var encodings =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var bytes = new Uint8Array(raw);
var byteLength = bytes.byteLength;
var byteRemainder = byteLength % 3;
var mainLength = byteLength - byteRemainder;
var a, b, c, d;
var chunk;
for (var i = 0; i < mainLength; i = i + 3) {
chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
a = (chunk & 16515072) >> 18;
b = (chunk & 258048) >> 12;
c = (chunk & 4032) >> 6;
d = chunk & 63;
base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];
}
if (byteRemainder == 1) {
chunk = bytes[mainLength];
a = (chunk & 252) >> 2;
b = (chunk & 3) << 4;
base64 += encodings[a] + encodings[b] + "==";
} else if (byteRemainder == 2) {
chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];
a = (chunk & 16128) >> 8;
b = (chunk & 1008) >> 4;
c = (chunk & 15) << 2;
base64 += encodings[a] + encodings[b] + encodings[c] + "=";
}
return "data:image/jpeg;base64," + base64;
}
4. 将数据通过上述方法转换
const content = '我是需要转换成二维码的内容,扫码就会看到我哦~';
const code = qrImage.imageSync( content , { type: "png" });// 使用安装的插件
const qr_code = _arrayBufferToBase64(code); // 通过第三步将code转换为base64格式的二维码
5. 展示
<image mode="widthFix" src="{{ qr_code }}" />
如此即可展示,二维码如下:
扫码结果: