更新记录
1.0.0(2026-11-05) 下载此版本
1.0.0
- 纯 JS 二维码生成 + 扫码,零原生依赖,全端兼容
- 支持 view 点阵与 canvas 高清两种渲染
- 修复 App 端 toDataURL 无 DOM 时的明确提示与导出回退
- 修复 renderToCanvas 的 DPR 获取与 legacy 路径兼容
- 演示页新增「导出图片(全端)」与「保存到相册」
平台兼容性
pk-qrcode · 二维码套件
纯 JS 生成 + 扫码,零原生插件、零额外权限、不联网、不依赖 uniCloud。同时提供「view 点阵渲染」与「canvas 高清渲染」两条路径。
安装
复制 uni_modules/pk-qrcode 到项目 uni_modules/ 下即可。
快速开始
import pkQrcode from '@/uni_modules/pk-qrcode/js_sdk/index.js';
// 方式一:view 点阵(推荐 App 端,规避 canvas 层级问题)
const r = pkQrcode.generate('https://plugins.cnajiu.cn', { ecLevel: 'M' });
// r = { ok, count, version, margin, modules, cells }
// 方式二:canvas 高清(可保存相册)
await pkQrcode.renderToCanvas('myCanvas', 'https://plugins.cnajiu.cn');
// 扫码
const s = await pkQrcode.scan();
if (s.ok) console.log(s.result);
方法一览(全部暴露方法)
| 方法 | 签名 | 说明 |
|---|---|---|
init |
init(opts?) |
初始化配置,幂等 |
generate |
generate(text, opts?) → {ok,count,version,margin,modules,cells} |
生成矩阵(同步纯函数);失败返回 {ok:false,code:'E-QR-10'} |
renderToView |
renderToView(text, opts?) → {ok,count,margin,cells} |
仅返回 view 渲染点阵(App 端推荐) |
renderToCanvas |
async renderToCanvas(canvasId, text, opts?) → {ok,width,height} |
Canvas 2D 高清渲染,DPR 自适应 |
toDataURL |
async toDataURL(text, opts?) → {ok,dataURL?} |
base64 PNG(H5 可用;App 端无 document 时返回失败原因) |
scan |
async scan(opts?) → {ok,result?,cancelled?} |
扫码(uni.scanCode 封装,跨端一致) |
validate |
validate(text, opts?) → {ok,count?} 或 {ok:false,reason} |
校验可编码性 / 预估模块数 |
PLUGIN_VERSION |
string |
插件版本号 |
opts
| 键 | 默认 | 说明 |
|---|---|---|
ecLevel |
'M' |
纠错级别 L/M/Q/H(H 最抗遮挡,容量最小) |
typeNumber |
0 |
0=自动选版本 |
margin |
4 |
静默区模块数(ISO 建议 4) |
cellSize |
6 |
canvas/dataURL 模式下每模块像素 |
dark / light |
#000/#FFF |
前景/背景色 |
组件:pk-qrcode-canvas
<pk-qrcode-canvas :text="url" :size="220" />
内置 DPR 适配与保存到相册(save() 方法)。
正确性
编码器 vendored 自 qrcode-generator(MIT),强制 UTF-8 支持中文;单测用 jsQR 独立解码回环验证(27 用例全绿,含中文/JSON/WiFi 格式)。

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 3
赞赏 0
下载 12744577
赞赏 1959
赞赏
京公网安备:11010802035340号