更新记录

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 格式)。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。