更新记录

1.0.0(2026-10-27)

  • 新增 QR Model 2 二维码矩阵编码,支持 Unicode、UTF-8 ECI、版本选择及 L/M/Q/H 纠错等级。
  • 新增二维码图片生成、矩阵获取、平台能力查询、诊断信息查询和临时文件释放 API,支持回调与 Promise 调用。
  • 新增方块、圆角和圆点码点,以及方形、圆角码眼;支持配色、透明背景、尺寸和安全静区设置。
  • 新增中心 Logo,支持手机选图、HTTPS 图片地址和图标比例、内边距设置,使用 Logo 时自动采用 H 纠错等级。
  • 新增移动端二维码编辑示例,提供顶部预览、下拉参数配置、样式预设和 uni-app Vue2/Vue3、uni-app x 示例。
  • 新增完整诊断报告和一键复制全部日志,提供备用分段复制及复制失败后的手动复制入口。
  • 新增 Web Chrome 支持,适用于 uni-app Vue2/Vue3 和 uni-app x;Android、iOS 和微信小程序候选实现的验收范围详见 README。

平台兼容性

uni-app(5.33)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ √ √ - - - - - ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- × × × × × × × × × - -

uni-app x(5.33)

Chrome Safari Android iOS 鸿蒙 微信小程序
√ - - - × -

lizhao-qrcode 二维码生成 UTS 插件

介绍

lizhao-qrcode 是面向 uni-app(Vue2/Vue3)与 uni-app x 的二维码生成 UTS 插件源码,用于把原始文本生成为 QR Model 2 矩阵或 PNG,提供码点/码眼样式、透明背景、中心 Logo、真实临时文件和本地诊断能力。

本次发布支持范围为Web Chrome;Safari、Android、iOS和微信小程序仍为待完成验收的候选实现,Harmony及其他小程序不支持。源码交付不代表已在插件市场上架。当前验收范围与未验边界见“注意事项”;当前插件版本只维护在 uni_modules/lizhao-qrcode/package.json,发布历史维护在 uni_modules/lizhao-qrcode/changelog.md。

功能特色

能力 对应接口或选项 用途与边界
原文编码 createQRCodeMatrixSync、text 保留前导零、空格、换行与 Unicode;不 trim、不转数值、不自动 URL 编码。非 ASCII 文本使用 UTF-8 和 ECI 26。
PNG 生成 createQRCode、createQRCodeAsync 回调或 Promise 二选一;生成真实可显示资源,失败不会返回空路径成功。
整数像素与静区 size、marginModules 按物理像素绘制整数模块,保留静区;尺寸不足明确失败。
透明背景与 Logo background、logo Logo 自动使用 H 纠错并恢复被覆盖的功能模块;透明底仍需业务保证显示底色和对比度。
码点与码眼样式 moduleShape、finderShape 方块/圆角/圆点码点与方形/圆角码眼,保留关键功能图形及静区;以实际能力列表和扫码验收为准。
按能力选择输出 getQRCodeCapabilities、output 区分 Data URL 与文件输出,Web 不提供文件输出。运行时能力不替代平台验收。
精确资源释放 removeQRCodeFileSync 只删除本插件登记的实际输出文件,不递归删除、不删除用户输入的 Logo 或其他文件。
本地诊断 getQRCodeDiagnostics 提供请求编号、阶段、错误、耗时与构建身份;完整示例默认一次复制全部日志,并提供固定快照的备用分段。

适合哪些场景

业务场景 推荐用法 使用边界
订单、链接、票据、设备绑定码 基础 PNG 生成,保留原始字符串 插件不校验业务链接是否有效,不提供扫码识别。
品牌分享卡与打印素材 Logo、明确像素尺寸和 H 纠错 Logo 遮挡比例有限;导出后按实际展示或打印尺寸扫描验收。
自绘码或导出前容量检查 同步矩阵与功能模块掩码 矩阵不含静区;自绘必须保留功能模块、静区和整数像素。
临时展示、平台分享或后续保存 先检测文件能力,再选择 file 或 both 文件为临时输出,使用结束精确释放;保存相册是业务另行调用的平台 API。
客户复现故障 完整示例底部“一键复制全部日志” 报告包含保留的会话日志和插件快照,不包含二维码原文、图片或完整来源地址。

下载与导入

当前提供开发候选源码,没有本插件的已核实市场详情链接。把完整的 uni_modules/lizhao-qrcode/ 复制到目标项目,保留接口、各平台实现、原生文件、许可证和示例资源;不要只复制某个平台文件或依赖另一项目的共享目录。

项目要求和引擎范围以 uni_modules/lizhao-qrcode/package.json 为准。普通 uni-app 完整示例使用 JavaScript 选项式 API,兼容 Vue2/Vue3;uni-app x 示例使用 UTS。Vue2/Vue3 已分别执行真实框架状态/生命周期回归及 Web 编译,nvue 未专门验收。uni-app x 接入应保留项目实际 Vapor/VDOM 渲染配置,并按对应模式核对验收范围,不能用相同 .uvue 扩展名推定两种模式已通过。插件业务 API 与公开类型只从 @/uni_modules/lizhao-qrcode 导入。

完整工具示例随插件交付:

  • uni-app:uni_modules/lizhao-qrcode/example/uniapp/index.vue。
  • uni-app x:uni_modules/lizhao-qrcode/example/uniappx/index.uvue。
  • 示例接入、复制报告和验收步骤:uni_modules/lizhao-qrcode/example/readme.md。
  • 随示例交付的合成 Logo:uni_modules/lizhao-qrcode/example/assets/logo.jpg。

在目标项目的 pages.json 中合并适合本宿主的页面记录;已有同路径记录时不要重复添加。以下两项各选一项注册,导航标题可按业务修改:

{
  "pages": [
    {
      "path": "uni_modules/lizhao-qrcode/example/uniappx/index",
      "style": { "navigationBarTitleText": "二维码生成" }
    }
  ]
}

普通 uni-app 将 path 改为下面的页面路由,对应实际文件 uni_modules/lizhao-qrcode/example/uniapp/index.vue:

"path": "uni_modules/lizhao-qrcode/example/uniapp/index"

示例页面、报告 helper 与构建身份配套使用,页面不需要创建 hiddenCanvas 或传入 Canvas 实例。

App 首次导入或原生 UTS、Kotlin、Swift、权限、配置变化后,需要原生联编或重打匹配源码的自定义基座;标准基座和旧基座不能自动获得本插件的原生实现,WGT 也不能更新旧基座内的原生代码。仅修改本说明、示例页面、报告或普通资源通常不需要重打原生基座。Web、微信小程序不依赖 App 自定义基座,仍须通过对应宿主编译与运行验证。

本候选 A5 实际运行修复已修改公共 UTS 和原生构建身份,因此本阶段 App 接入必须重新原生联编或重打匹配新源码的自定义基座。A3 历史独立 APK 不匹配本阶段源码,不能作为本轮 App 验收或直接复用依据。

从基础到进阶:按业务模块使用

模块一:从文本生成可预览的 PNG

先用默认的 dataUrl 输出验证实际平台绘图能力。以下是可放入已注册页面的最小页面写法;随插件交付的完整工具页路径分别为 uni_modules/lizhao-qrcode/example/uniapp/index.vue 与 uni_modules/lizhao-qrcode/example/uniappx/index.uvue,还包含回调调用、释放和诊断。

普通 uni-app Vue3 页面使用 JavaScript,不在普通 <script setup> 中填写 UTS 类型:

<template>
  <view>
    <button :disabled="busy" @click="generate">生成二维码</button>
    <image v-if="imageSrc.length > 0" :src="imageSrc" mode="aspectFit" />
    <text>{{ status }}</text>
  </view>
</template>

<script setup>
import { ref } from 'vue'
import { onUnload } from '@dcloudio/uni-app'
import { createQRCodeAsync, getQRCodeCapabilities } from '@/uni_modules/lizhao-qrcode'

const busy = ref(false)
const imageSrc = ref('')
const status = ref('就绪')
let disposed = false

function generate() {
  if (busy.value) return
  const capabilities = getQRCodeCapabilities()
  if (!capabilities.canRender || !capabilities.supportsDataUrl) {
    status.value = '当前环境不支持 PNG Data URL,请检查平台能力和基座'
    return
  }
  busy.value = true
  createQRCodeAsync({ text: '0000123 中文二维码 👩🏽‍💻', size: 512, output: 'dataUrl' })
    .then(result => {
      if (disposed) return
      imageSrc.value = result.imageSrc
      status.value = '成功:' + result.width + '×' + result.height + ' px'
      busy.value = false
    })
    .catch(error => {
      if (disposed) return
      status.value = error.errSubject + ' / ' + error.errCode + ':' + error.errMsg
      busy.value = false
    })
}

onUnload(() => { disposed = true })
</script>

uni-app x 使用 <script setup lang="uts"> 和根入口的公开类型:

<template>
  <view>
    <button :disabled="busy" @click="generate">生成二维码</button>
    <image v-if="imageSrc.length > 0" :src="imageSrc" mode="aspectFit" />
    <text>{{ status }}</text>
  </view>
</template>

<script setup lang="uts">
import { ref } from 'vue'
import { onUnload } from '@dcloudio/uni-app'
import { createQRCodeAsync, getQRCodeCapabilities, QRCodeResult, QRCodeFail } from '@/uni_modules/lizhao-qrcode'

const busy = ref(false)
const imageSrc = ref('')
const status = ref('就绪')
let disposed = false

function generate(): void {
  if (busy.value) return
  const capabilities = getQRCodeCapabilities()
  if (!capabilities.canRender || !capabilities.supportsDataUrl) {
    status.value = '当前环境不支持 PNG Data URL,请检查平台能力和基座'
    return
  }
  busy.value = true
  createQRCodeAsync({ text: '0000123 中文二维码 👩🏽‍💻', size: 512, output: 'dataUrl' })
    .then((result: QRCodeResult): void => {
      if (disposed) return
      imageSrc.value = result.imageSrc
      status.value = '成功:' + result.width.toString() + '×' + result.height.toString() + ' px'
      busy.value = false
    })
    .catch((error: QRCodeFail): void => {
      if (disposed) return
      status.value = error.errSubject + ' / ' + error.errCode.toString() + ':' + error.errMsg
      busy.value = false
    })
}

onUnload((): void => { disposed = true })
</script>

createQRCodeAsync 的参数类型是 QRCodeRenderOptions,只接受业务参数,不传 success、fail 或 complete。Promise 成功得到 QRCodeResult,失败得到 QRCodeFail;用 resolve/reject 处理一次终态。本例只产生 Data URL,没有临时文件需要释放。

模块二:Logo、透明背景与矩阵

先把 uni_modules/lizhao-qrcode/example/assets/logo.jpg 复制为 static/qrcode-logo.jpg(由用户准备的项目资源,不是插件自动生成文件),再在已注册的 uni-app x 页面脚本中调用下面的函数。普通 Vue3 使用同一业务字段,移除 UTS 类型注解即可;完整双宿主工具页也可直接开启“示例 Logo”,无需自行准备文件。

import { createQRCodeAsync, createQRCodeMatrixSync, getQRCodeCapabilities, QRCodeResult, QRCodeFail } from '@/uni_modules/lizhao-qrcode'

function generateWithLogo(): void {
  const capabilities = getQRCodeCapabilities()
  if (!capabilities.canRender || !capabilities.supportsLogoLocal) {
    console.error('当前环境不支持本地 Logo,请先核对能力和验证范围')
    return
  }
  createQRCodeAsync({
    text: '0000123 中文二维码',
    size: 768,
    marginModules: 4,
    errorCorrectionLevel: 'M',
    background: 'transparent',
    output: 'dataUrl',
    logo: { source: '/static/qrcode-logo.jpg', sizeRatio: 0.15, paddingRatio: 0.08, backgroundColor: '#ffffff' }
  }).then((result: QRCodeResult): void => {
    // Logo 会把实际纠错等级提升为 H;与生成结果一致的矩阵须使用实际等级和版本。
    console.log('PNG 已生成,实际纠错等级=', result.effectiveErrorCorrectionLevel)
    try {
      const matrix = createQRCodeMatrixSync({
        text: '0000123 中文二维码', errorCorrectionLevel: result.effectiveErrorCorrectionLevel,
        minVersion: result.version, maxVersion: result.version
      })
      console.log('矩阵模块数=', matrix.moduleCount, 'UTF-8 字节数=', matrix.byteLength, 'ECI=', matrix.hasEci)
    } catch (error) {
      console.error('矩阵生成失败:', error.message)
    }
  }).catch((error: QRCodeFail): void => {
    console.error(error.errSubject, error.errCode, error.stage)
  })
}

Logo 的 sizeRatio 是包含衬底与内边距的遮挡区域边长除以码区边长;paddingRatio 是每侧内边距除以遮挡区域边长。Logo 衬底只作用于 Logo 区域,不会把整张透明 PNG 改成白底。功能图形优先保留,Logo 可能被功能模块覆盖;查看结果 warnings 后仍须按实际展示背景扫描验收。

纯矩阵调用只接受 QRCodeMatrixOptions,没有 Logo、颜色、尺寸、输出或超时选项。cells 按行存储,索引为 y * moduleCount + x;functionModules 为同长度的保护掩码,两数组均不含静区。不要把矩阵失败替换成空矩阵,也不要在输出图片上插值拉伸或裁切静区。

模块三:回调、临时文件所有权与诊断

需要真实文件时先检查 supportsFileOutput。下例是可加入 uni-app x 页面 <script setup lang="uts"> 的独立文件调用与清理流程;通过按钮调用 generateFile()。普通 Vue3 使用相同 API,去掉类型注解。示例不保存用户 Logo 路径,只登记本次成功返回的 filePath:

import { ref } from 'vue'
import { onUnload } from '@dcloudio/uni-app'
import { createQRCode, getQRCodeCapabilities, getQRCodeDiagnostics, removeQRCodeFileSync, QRCodeResult, QRCodeFail, QRCodeCompleteResult } from '@/uni_modules/lizhao-qrcode'

const imageSrc = ref('')
const status = ref('就绪')
let disposed = false
let ownedFiles: Array<string> = []

function releaseFiles(): void {
  if (!disposed) imageSrc.value = ''
  const remaining: Array<string> = []
  for (const path of ownedFiles) {
    try {
      const released = removeQRCodeFileSync(path)
      if (!released.removed) remaining.push(path)
    } catch (error) {
      remaining.push(path)
      console.error('临时文件释放失败,保留登记以便重试:', error.message)
    }
  }
  ownedFiles = remaining
}

function generateFile(): void {
  if (!getQRCodeCapabilities().supportsFileOutput) {
    status.value = '当前平台不支持文件输出'
    return
  }
  releaseFiles()
  const requestId = createQRCode({
    text: '0000123 中文二维码', output: 'file', timeoutMs: 10000,
    success: (result: QRCodeResult): void => {
      const path = result.filePath
      if (path != null) ownedFiles.push(path)
      if (disposed) { releaseFiles(); return }
      imageSrc.value = result.imageSrc
      status.value = '文件生成成功,使用结束后释放'
    },
    fail: (error: QRCodeFail): void => {
      if (!disposed) status.value = error.errSubject + ' / ' + error.errCode.toString() + ':' + error.errMsg
    },
    complete: (result: QRCodeCompleteResult): void => {
      console.log('请求结束=', result.requestId, '成功=', result.success)
      const diagnostics = getQRCodeDiagnostics()
      console.log('保留诊断条数=', diagnostics.entries.length, '已丢弃=', diagnostics.droppedEntries)
    }
  })
  console.log('已提交请求=', requestId)
}

onUnload((): void => { disposed = true; releaseFiles() })

createQRCode 立即返回请求编号,参数失败也异步进入失败终态:success 与 fail 互斥且至多一次,随后已传入的 complete 恰好一次。业务回调自身抛异常会被隔离并记录,不会再次派发成功或失败。complete 是带 success/result/error 的数据封套,不能把它直接当 PNG 结果使用。

公开 API 没有取消方法。页面卸载后停止 UI 更新、释放已取得文件;若请求晚成功,仍精确释放它真实返回的文件。timeoutMs 包含排队、编码、Logo、绘图、PNG 和文件步骤;超时以 9331007 失败,之后不会再派发晚成功或第二次 complete。当前最多八个在途请求,超过上限以 9331005 失败;批量业务应自行限流。

完整工具页底部提供“一键复制全部日志”“复制下一段”“刷新报告”“完整报告/手动复制”“查看当前分段”。完整报告包含环境来源、插件快照和当前保留的会话日志;页面可见五条摘要不等于复制内容。先固定快照再分段,只有真实剪贴板 success 才推进;失败保留当前分段并展开可选文本,原日志不会清空。详细使用和实际验收边界见 uni_modules/lizhao-qrcode/example/readme.md。

API 用途速查

全部公开业务 API 共六个;原生桥接、编码内部函数和报告 helper 不属于插件业务 API。

API 签名 用途与失败方式
createQRCode (options: CreateQRCodeOptions): string 异步回调生成 PNG,立即返回请求编号;终态通过回调交付。
createQRCodeAsync (options: QRCodeRenderOptions): Promise<QRCodeResult> Promise 生成 PNG;失败 reject QRCodeFail,不接收业务回调字段。
createQRCodeMatrixSync (options: QRCodeMatrixOptions): QRCodeMatrixResult 同步生成原始矩阵;失败抛 QRCodeFail。
getQRCodeCapabilities (): QRCodeCapabilities 查询当前宿主、绘图和来源能力;查看 unavailableReasons。
getQRCodeDiagnostics (): QRCodeDiagnostics 获取本地脱敏诊断快照,不自动上传、不清空日志。
removeQRCodeFileSync (filePath: string): QRCodeRemoveFileResult 同步精确释放登记输出;失败抛 QRCodeFail。Web 明确不支持。

图像生成参数与回调

下列业务字段由 QRCodeRenderOptions 与 CreateQRCodeOptions 共用;只有后者包含三个业务回调。所有整数和比例均须为有限数字,不能把数字字符串当作数字传入。

参数 类型 必填 说明 默认值 可选参数
text string 是 原样编码的非空文本;无效 UTF-16 代理项失败。字数不等于 UTF-8 字节数或二维码容量。 无 有效 Unicode 字符串,空格和换行原样保留
size number 否 最终正方形 PNG 边长,单位为物理像素,不是 rpx 或 CSS 显示尺寸。 512 64–2048 的整数
marginModules number 否 每边最少静区的模块数。 4 4–32 的整数
errorCorrectionLevel QRCodeErrorCorrectionLevel 否 请求纠错等级;设置 Logo 后实际强制使用 H。 M L、M、Q、H
minVersion number 否 QR Model 2 最小版本。 1 1–40 的整数
maxVersion number 否 QR Model 2 最大版本,不小于 minVersion。 40 1–40 的整数
foreground string 否 深色模块颜色;与非透明 background 相同则失败。 #000000 #RRGGBB,大小写均可
background string 否 浅色模块与静区背景;透明时浅模块保留透明度。 #ffffff #RRGGBB、transparent
moduleShape QRCodeModuleShape 否 码点造型,须在能力支持列表中;未支持返回9331008。 square square、rounded、dot
finderShape QRCodeFinderShape 否 三个定位码眼的造型,须在能力支持列表中。 square square、rounded
output QRCodeOutput 否 输出形式,须结合当前文件/Data URL 能力。 dataUrl dataUrl、file、both
logo QRCodeLogoOptions 或 null 否 中心 Logo 选项;省略或 null 表示不使用。 null 见下表
timeoutMs number 否 整个异步请求预算,单位毫秒,排队也计时。 10000 100–60000 的整数
success (result: QRCodeResult) => void 否 仅 createQRCode;成功时触发,至多一次。 不调用 与 fail 互斥
fail (error: QRCodeFail) => void 否 仅 createQRCode;失败时触发,至多一次。 不调用 参数、能力、超时及其他真实失败
complete (result: QRCodeCompleteResult) => void 否 仅 createQRCode;已传入时在 success/fail 之后恰好一次。 不调用 成功和失败均触发

modulePixels = floor(size / (moduleCount + 2 * marginModules)),必须至少为 1;多余物理像素留在两侧静区,可能相差 1 px,不会拉伸模块。颜色仅作格式与相同值校验;不同颜色也可能对比不足,仍须业务验收。

square表示原有方块,rounded表示圆角,dot表示圆点(仅码点)。Android、iOS、Web、微信源码均已接入真实像素绘制;实际可用值仍须先检查supportedModuleShapes/supportedFinderShapes,旧基座或平台未声明的合法造型返回9331008,非法造型返回9331001,不静默输出方块。数据样式保留其余功能模块,码眼只调整三个标准定位区;同步矩阵接口没有造型参数,编码矩阵与功能掩码不变。低分辨率的1px模块可能看起来仍像方块,导出后须按真实展示/印刷尺寸扫码。iOS源码与数学检查不代表Apple编译或iPhone已验收,详见注意事项。

Logo 参数

参数 类型 必填 说明 默认值 可选参数
source string 是 项目资源、本地临时 PNG/JPEG、PNG/JPEG Data URL 或 HTTPS;可用来源以运行时能力及平台条件为准。 无 不接受普通 HTTP、SVG 等非 PNG/JPEG 内容
sizeRatio number 否 含衬底与内边距的遮挡区域边长 / 码区边长。 0.15 0.05–0.20
paddingRatio number 否 每侧内边距 / 遮挡区域边长。 0.08 0–0.25
backgroundColor string 否 Logo 衬底色,不修改整个二维码背景。 #ffffff #RRGGBB

原始 Logo 不超过 5 MiB,任一边不超过 4096,像素总数不超过 1600 万;损坏、无法访问、未知必要大小或超限均按真实失败处理,不会忽略 Logo 后伪装成功。平台条件、网络限制和内存边界见“注意事项”。

同步矩阵参数

参数 类型 必填 说明 默认值 可选参数
text string 是 与图像入口相同的原文编码和有效 Unicode 要求。 无 非空字符串
errorCorrectionLevel QRCodeErrorCorrectionLevel 否 矩阵实际纠错等级;矩阵 API 本身不接受 Logo。 M L、M、Q、H
minVersion number 否 最小版本。 1 1–40 的整数
maxVersion number 否 最大版本,须不小于 minVersion。 40 1–40 的整数

PNG 结果 QRCodeResult

参数 类型 必填 说明 默认值 可选参数
requestId string 是 本次插件请求编号,用于关联回调、阶段和诊断。 实际生成 无
imageSrc string 是 可显示的真实 PNG 来源;dataUrl 输出为 Data URL,file/both 输出优先为文件路径。 实际输出 无空路径成功
dataUrl string 或 null 是 PNG Data URL;file 输出时为 null。 按 output 决定 dataUrl/both 时非空
filePath string 或 null 是 登记的真实临时文件路径;dataUrl 输出时为 null。不要自行改写或拼接路径。 按 output 决定 file/both 时非空
mimeType string 是 实际输出类型。 image/png 仅 PNG
width number 是 PNG 宽,物理像素。 等于 size 64–2048
height number 是 PNG 高,物理像素。 等于 size 64–2048
version number 是 实际选定的 QR Model 2 版本。 实际编码值 minVersion–maxVersion
moduleCount number 是 每边码区模块数,不含静区,等于 17 + 4 × version。 实际编码值 21–177
modulePixels number 是 每个模块占用的整数物理像素数。 实际布局值 至少 1
byteLength number 是 原始文本的 UTF-8 字节数,不是 PNG 文件大小。 实际编码值 正整数
effectiveErrorCorrectionLevel QRCodeErrorCorrectionLevel 是 实际纠错等级,Logo 存在时为 H。 实际编码值 L、M、Q、H
hasEci boolean 是 是否携带 UTF-8 ECI 26;非 ASCII 文本为 true。 按实际文本 true、false
backgroundTransparent boolean 是 是否使用透明背景。 按 background true、false
durationMs number 是 提交到生成完成的耗时,毫秒。 实测 非负数
warnings Array 是 透明底对比度、Logo 与功能图形重叠等提醒;不代替扫描验收。 无提醒时空数组 实际提醒

矩阵结果 QRCodeMatrixResult

参数 类型 必填 说明 默认值 可选参数
version number 是 实际 QR 版本。 实际编码值 1–40
moduleCount number 是 每边模块数,不含静区。 17 + 4 × version 21–177
byteLength number 是 原文 UTF-8 字节数。 实际编码值 正整数
effectiveErrorCorrectionLevel QRCodeErrorCorrectionLevel 是 本次矩阵的实际纠错等级。 实际编码值 L、M、Q、H
hasEci boolean 是 是否携带 UTF-8 ECI。 按文本 true、false
cells Array 是 行优先深浅模块,true 为深色,长度为 moduleCount²。 实际矩阵 不含静区
functionModules Array 是 同长度功能图形保护掩码,true 位置不得被 Logo 或样式破坏。 实际掩码 不含静区

完成封套 QRCodeCompleteResult

参数 类型 必填 说明 默认值 可选参数
requestId string 是 与本次返回编号及终态对应。 实际请求编号 无
success boolean 是 标识成功还是失败。 实际终态 true、false
result QRCodeResult 或 null 是 success=true 时非空,失败时为 null。 按终态 真实 PNG 结果
error QRCodeErrorSnapshot 或 null 是 success=false 时非空,成功时为 null;是可序列化数据,不是原生异常实例。 按终态 见错误字段

文件释放参数与结果

参数 类型 必填 说明 默认值 可选参数
filePath(入参) string 是 本进程由插件成功返回、仍在登记中的原样路径。 无 不接受用户任意路径、Logo 路径或目录
filePath(QRCodeRemoveFileResult) string 是 已释放的原样路径。 等于入参 不写入诊断日志
removed(QRCodeRemoveFileResult) boolean 是 成功时为 true;失败抛错,不以 false 假装成功。 true 无

该接口不递归、不执行目录清理。再次释放、进程重启后失去登记、非插件输出或已失效路径按 9331009 处理;合法登记文件的真实 I/O 失败可能为 9331006。Web 的文件能力与释放均返回 9331008。

能力结果 QRCodeCapabilities

能力查询和诊断查询均无入参。以下字段为当前环境的实际检测值,不是已发布平台勾选;方法存在也不代表网络、域名、图片或设备条件必然满足。

参数 类型 必填 说明 默认值 可选参数
platform string 是 插件识别的运行端。 运行时读取 如 app-android、app-ios、web、mp-weixin
host string 是 编译宿主。 构建条件确定 uni-app、uni-app x
canEncode boolean 是 共享矩阵编码是否可用。 实际能力 true、false
canRender boolean 是 绘图实现已安装且当前环境就绪。 实际检测 true、false
supportsFileOutput boolean 是 真实文件输出能力。 实际检测 Web 为 false
supportsDataUrl boolean 是 PNG Data URL 输出能力。 实际检测 true、false
supportsTransparentBackground boolean 是 透明背景能力。 实际检测 true、false
supportsLogoLocal boolean 是 项目资源或本地来源能力;仍需真实可读。 实际检测 true、false
supportsLogoHttps boolean 是 HTTPS Logo 方法能力;仍受网络和安全条件限制。 实际检测 true、false
supportsLogoDataUrl boolean 是 PNG/JPEG Data URL Logo 能力。 实际检测 true、false
supportedModuleShapes Array 是 当前可绘制码点造型;旧实现只回退square,不可绘图时为空。 实际检测 square、rounded、dot的受控子集
supportedFinderShapes Array 是 当前可绘制定位码眼造型;未声明的造型不能使用。 实际检测 square、rounded的受控子集
minOutputSize number 是 合同允许的最小 PNG 边长,物理像素;不保证所有文本均能放入。 64 需同时满足矩阵布局
maxOutputSize number 是 合同允许的最大 PNG 边长,物理像素。 2048 无
minWxBaseLibrary string 或 null 是 微信 2D 方法的官方基础库门槛;非微信或无法确认时为 null。 按平台 2.16.1 或 null;HTTPS 另有条件
unavailableReasons Array 是 方法缺失、环境未就绪或源码身份不匹配等原因。 无原因时空数组 按实际环境

诊断结果 QRCodeDiagnostics 与条目

参数 类型 必填 说明 默认值 可选参数
pluginId string 是 插件标识。 lizhao-qrcode 无
pluginVersion string 是 来自本次插件构建的 package.json,由构建生成,不在业务页面硬编码。 构建生成 无
sourceBuild string 是 当前源码身份,用于匹配插件与示例。 构建生成 不是客户应用的 HX/基座版本
encoderRevision string 或 null 是 编码器来源修订标识;不可确认时为 null。 构建记录 无
host string 是 插件识别的宿主。 构建条件确定 uni-app、uni-app x
platform string 是 插件识别的运行端。 实际环境 无
nativeBuild string 或 null 是 绘图实现回报的构建身份;未知为 null。 实际回报 不等于安装包或基座完整身份
capabilities QRCodeCapabilities 是 查询时的能力快照。 实际检测 见能力表
entries Array 是 按发生时间整理的保留条目,含可取得的脱敏原生诊断。 当前缓存 不保证保留全部历史
droppedEntries number 是 容量限制、采集失败等导致的已丢弃计数。 当前计数 非负数
maxEntries number 是 插件诊断合并后的条数上限。 200 无
maxTextLength number 是 插件诊断文字预算,含用于估算的条目元数据开销,按 UTF-16 单元计。 65536 不等于 PNG 字节数
time(条目) string 是 ISO 8601 时间,携带时区。 实际采集 无
level(条目) QRCodeDiagnosticLevel 是 条目级别。 实际采集 debug、info、warn、error
requestId(条目) string 是 请求关联编号;无对应生成请求时可为空。 实际编号 无
operation(条目) string 是 API 或原生阶段来源。 实际记录 无
stage(条目) QRCodeStage 是 处理阶段。 实际记录 见错误字段后的阶段列表
durationMs(条目) number 是 阶段或请求关联耗时,毫秒。 实际采集 非负数
detailsJson(条目) string 是 脱敏的事件、长度、格式或错误元数据;不包含原文、图片 Base64 或完整敏感 URL。 实际记录 原生不可采集信息须明确边界

同步矩阵等同步 API 抛错时,受控的错误码、操作与阶段也进入插件诊断快照,完整报告会保留这些条目。诊断写入失败不会替换原始业务错误或改变回调合同;同步错误没有生成请求编号时仍允许 requestId 为空。

错误对象与错误上下文

QRCodeFail 在失败回调、Promise reject 和同步抛错中使用,包含下列字段;QRCodeErrorSnapshot 在 complete/诊断场景保留相同数据字段,避免把原生异常对象穿过宿主桥接。

参数 类型 必填 说明 默认值 可选参数
errSubject string 是 统一错误主题。 lizhao-qrcode 无
errCode QRCodeErrorCode 是 九个真实错误码之一。 实际失败 见错误码表
errMsg string 是 可识别的失败说明。 实际错误 不拼接二维码原文或来源凭据
operation string 是 API/操作名;也是 QRCodeErrorContext 的必填字段。 实际操作 无
requestId string 是 生成请求编号;同步能力/释放等无生成请求时可为空;也是 QRCodeErrorContext 的必填字段。 实际编号或空字符串 无
stage QRCodeStage 是 失败发生阶段;也是 QRCodeErrorContext 的必填字段。 实际阶段 见下文
nativeType string 是 可取得的原生异常类型,进入公开边界前脱敏;QRCodeErrorContext 中可省略。 无详情时空字符串 不伪造异常类型
nativeCause string 是 可取得的底层原因或说明;QRCodeErrorContext 中可省略。 无详情时空字符串 可能明确写 unknown/未采集原因
nativeStack string 是 可取得的脱敏原生堆栈;QRCodeErrorContext 中可省略。 无详情时空字符串 不伪造堆栈

QRCodeStage 的可选值为 validate、encode、loadLogo、render、writeFile、complete、release、capability。QRCodeErrorContext 只是构造与桥接使用的公开数据类型,不是新增业务 API;客户端调用无需手工构造它。

错误码说明

所有插件错误的 errSubject 均为 lizhao-qrcode。以 errCode 与 stage 判断处理方式,并保留请求编号和脱敏诊断;不要把 null、空路径、空矩阵或超时后的晚结果解释为成功。

错误码 含义 处理建议
9331001 参数无效 检查非空原文、有效 Unicode、数字类型/整数范围、版本先后关系、颜色、Logo 比例与回调类型。
9331002 内容超过所选版本和纠错等级容量 增大 maxVersion 或减少内容;Logo 使用 H 会降低可用容量。不能把 7089 当成所有文本都可容纳的字符数。
9331003 输出尺寸不足以清晰绘制二维码 增大 size 或减少内容;须同时容纳码区与每边静区,至少 1 物理像素/模块。
9331004 Logo 加载或解码失败 检查 PNG/JPEG 容器、真实可读路径、5 MiB/4096/1600 万像素上限及网络条件;不要静默丢弃 Logo。
9331005 图像绘制或 PNG 编码失败 查看 render 阶段和原生诊断;也可能是超过八个在途请求,需限流。
9331006 文件写入或读取失败 检查应用/小程序可写目录、真实 I/O 错误和输出上限;释放时保留失败文件登记以便重试。
9331007 二维码生成超时 本次请求已失败,插件清理在途资源且不再派发晚终态;按业务决定是否用新请求重试。
9331008 当前平台或所需能力不支持 先检查能力与原因;Web 的 file/both/释放明确属于此错误,不返回虚构路径。
9331009 文件不属于本插件或已失效 只释放本进程成功返回且仍登记的原样路径;重复释放、失去登记或任意用户路径均不可删除。

公开 API 没有主动取消方法,也没有取消错误码。页面卸载不等于生成已取消;超时与参数/平台失败均有明确终态。任何“结果未知”、桥接异常或图片预览失败都应保留真实状态与报告,不能改成成功;PNG 生成成功也不代表业务保存、分享或扫码识别已经成功。

注意事项

本次发布的平台范围

平台/宿主 本次声明 验证与边界
Web Chrome · uni-app Vue2/Vue3 支持 HX5.33完整宿主编译、真实页面与PNG反解;图片仅Data URL,HTTPS Logo需满足跨域读取规则。
Web Chrome · uni-app x 支持 HX5.33隔离宿主、Canvas和移动布局验证;无需App自定义基座。
Web Safari及其他未验浏览器 待验证 未执行本轮Safari真实浏览器验收,不作已支持承诺。
Android / iOS 候选,待验收 原生源码与部分生成物检查已有;当前新身份仍需匹配基座及设备验收,iOS还需Apple编译/链接。
微信小程序 候选,待验收 源码、编译/PNG算法检查不替代当前版本开发工具和真机验收。
Harmony / 其他小程序 不支持 未实现对应平台绘图;按能力检测和9331008处理。

最低接入版本按本次实测环境收敛为HBuilderX/uni-app/uni-app x 5.33;未经复验不承诺旧版本。默认点击“一键复制全部日志”即可复制整份固定快照,分段只在复制或发送受限时备用,不会要求先逐段操作。

本轮当前源码的Android/iOS双宿主appResource导出已通过,但尚未完成匹配基座和设备验收;微信两宿主已产生编译输出,其中传统uni-app工程仍被App拦截器的6条鸿蒙平台/UA兼容性静态告警拦住发布门禁,因此微信不标记已支持。该告警尚未作为真实鸿蒙微信业务验收通过,不能只凭导出成功取消边界。

平台、宿主与验收范围

以下区分源码能力与已完成验证。uni_modules/lizhao-qrcode/package.json 的平台勾选仍处于候选状态,正式支持需完成后续宿主与发布核验。API 运行时能力返回 true 不表示本表尚未验证的环境已经通过。

本次移动编辑器与造型变更已通过真实Vue2/Vue3状态/生命周期、完整Web示例编译、真实浏览器Canvas造型/透明/Logo检查;Android有实际Kotlin绘图函数像素与PNG反解、匹配源码独立APK编译,微信有生产绘图/软件PNG与独立反解。iOS当前只有源码/数学核对与新增XCTest用例,未在Apple环境执行。完整App基座、实际手机选图、真机造型扫码及其他浏览器仍须按所用平台验收;Web选择文件不等于手机系统相册已验收。

下表保留此前A5–A7基础能力的历史证据;其中“当前”指对应历史阶段源码,不能替代本次新增造型、Vue2兼容及移动布局的同源验收。此前使用只包含交付示例与插件的独立完整uni-app Vue3、uni-app x工程,完成Web、微信编译及Android/iOS appResource导出,未覆盖原项目所有路由或App最终原生运行。

Chromium 验收覆盖交付页面的 Web 编译产物。App 则分别核对主侧 Vapor/bytecode/styleIsolation 2 和配对侧 VDOM 配置,不把 Web 页面结果当原生模式运行结果。三种模式的插件实际资源已用官方匹配运行库联编;VDOM 示例与报告的实际生成 Kotlin 也已联编通过。Vapor 输出页面字节码,不冒称可读应用 Kotlin 已联编;Apple 编译、匹配基座与设备运行仍须另验。

平台/宿主 当前实现边界 已有验证与未验证范围
uni-app Vue2/Vue3 普通JS选项式页面调用同一根API;有独立完整示例 本次真实Vue2/Vue3运行时与Web编译通过;下列A5–A7的历史页面/剪贴板证据是Vue3基线。完整App和设备仍须匹配源码验收。
uni-app x UTS 页面调用同一根 API;有独立完整示例 本轮完成上述独立宿主编译/资源导出,Windows Chromium 页面、实际剪贴板和窄屏验收通过;原项目全路由、App 真基座与设备未验。
Android App 原生绘图、Data URL 与登记文件实现 A6 当前源码在 MI 8(Android 10/API 29)独立 APK 的 18 项原生回归通过,10 张实际二维码 PNG 独立反解通过,设备安装包哈希与本次产物一致;独立 APK 不含 UTS 桥接/宿主页面。完整 App 仍需匹配新源码的原生联编/自定义基座验收。
iOS App Swift 候选实现,含异步桥接与文件释放 本轮完成独立双宿主 appResource 导出;未完成 Apple SwiftCompile、链接或 iPhone 验收,资源导出不等于 Apple 编译。
Web OffscreenCanvas 2D,缺失时降级到未附着 DOM 的 Canvas;仅 dataUrl A5 独立双宿主在 Windows Chromium 完成真实页面、复制及四张 PNG 反解;A6 双宿主批量公开 API 回归通过,另有 60 张实际 PNG 逐张独立反解。Safari、iOS Web、公网 HTTPS 成功及跨源 CORS/TLS 未验。
微信小程序 wx.createOffscreenCanvas 2D、像素读回与本地 PNG 编码;dataUrl/file/both A7 当前完整双宿主示例在微信开发工具基础库 3.17.3 各完成六组真实页面事件验证,六张 PNG 独立反解通过;实际文件清理及完整/分段报告的微信 SDK、Windows 剪贴板回读通过。Android/iPhone 微信真机及体验版仍未验。
Harmony 没有完成可声明支持的平台实现 不声明支持。
支付宝及其他小程序 没有完成对应绘图实现 不声明支持;不要推断微信实现可直接用于其他小程序。

传统 uni-app Web 的真实运行暴露了全局 UniError 与 JSON.parseObject 未注入的问题。当前已在插件边界修复:仅传统非 App 宿主从官方 @dcloudio/uni-shared 引入错误基类,并用局部标准对象解析适配回应;不修改全局 JSON,也不要求业务页面注入全局对象。该修复保持六个公开 API 与九个错误码不变,不代表完整平台终验已经通过。

Windows Chromium 下两宿主各完成七项实际 UI 检查:回调 PNG、Promise 透明 Logo、长 Data URL Logo 输入、9331001 失败与同步错误报告、完整报告剪贴板回读、各七段实际回读后重组固定快照,以及 390px/320px 下的 Flex 换行、按钮至少 44×44px 和表单无横向溢出。四张实际 PNG 经独立 ZXing 反解,保留原文、空白、前导零与 Unicode;这些结果只覆盖本轮实际图片与环境。

A6 在上述两种完整 Web 宿主追加真实根入口批量回归:各自一次提交 20 个请求时,8 个成功、12 个因超过在途上限返回 9331005,success/fail 二选一且 complete 各一次;使用 4 个工作单元调度 20 项则全部成功。包含同尺寸换文、回调/Promise、透明/Logo、513px 奇数尺寸、提交后修改参数及客户回调抛异常。两宿主各 30 张真实输出均逐张独立反解到对应原文,未串图。该结果不是“20 个同时处理中”的承诺;批量业务应限制在途数量,实际耗时只代表该次本机观测。

A7 在微信开发工具中使用真实客户页面验证 Data URL、file、both、透明 Logo/H、513px、同尺寸换文、旧文件自动清理、精确释放、9331001 与矩阵错误。两种宿主各三张真实 PNG 反解到对应输入,独立 RGBA 检查确认透明与不透明结果。完整报告与全部分段分别经微信 SDK 和 Windows 剪贴板回读,按首尾标记重组同一快照;本次两宿主分别为 14 段和 6 段,段数依报告长度变化。工具的页面查询接口在本机超时,自动化通过编译 WXML 的真实 bindinput/bindtap 事件入口执行,另有实际按钮点击与截图交叉验证;未改页面状态、wx API 或结果来代替调用。platform=devtools 才是环境依据,工具模拟的 iPhone 型号与 iOS 系统值不代表真机。

图片、像素与来源

  • 输出固定为 PNG,最大 8 MiB;size 为物理像素,页面 <image> 的 CSS 尺寸不会提高 PNG 分辨率。容量依 QR 版本、模式、UTF-8 字节数和纠错等级变化;中文/emoji 不按一字符一字节计算。
  • 编码器为整串选择数字、字母数字或 UTF-8 字节模式,非 ASCII 携带 ECI 26;无效代理项明确失败。QR 版本范围为 1–40,不承诺扫描器对业务内容、显示背景或后续压缩图片的识别效果。
  • Logo 限 PNG/JPEG,原始字节不超过 5 MiB,单边不超过 4096、总像素不超过 1600 万。扩展名或 Data URL 标签不代替实际格式校验。HTTPS URL 不等于网络必然成功,普通 HTTP 不是允许的网络来源。
  • Web 项目资源/本地来源受浏览器访问边界限制,本机任意磁盘路径不能当作可读网页资源;同源资源、Data URL 与 HTTPS Logo 仍须真实读取、解码并符合 CORS/TLS 等条件。file/both 与文件释放明确返回 9331008。
  • 微信 2D 方法的官方最低基础库门槛为 2.16.1,实际仍逐项检测相关方法;本候选只在 3.17.3 开发工具实测。HTTPS Logo 另要求 3.2.2+、manual 重定向控制能力和小程序合法域名条件,真实公网/重定向/域名矩阵未验,不能降低基础库后声称已通过。
  • 微信按已核实的本地大小限长读取,并串行执行绘图/PNG 来约束峰值;Image 缺少缩小解码参数,4096×4096 RGBA 理论约 64 MiB。八个在途请求上限不表示可同时解码八张最大 Logo,业务仍须限流并测试内存较低的设备。
  • 微信 filePath 是实际登记输出路径,不假造 file:// 前缀;只在本进程仍有所有权记录时可释放。App 临时文件同样不承诺永久存在,应由业务在使用前确认和按需持久化。

权限、生命周期与基座

二维码在本地编码和绘图,不需要相机、相册或危险存储权限,不默认上传文本、图片或日志;仅显式传入 HTTPS Logo 时下载该图片。Android HTTPS Logo 使用普通 INTERNET 网络权限。保存相册、系统分享及相应权限由业务另行处理,不属于六个公开 API。

不要删除正在预览、分享或保存流程中仍需读取的临时文件。页面卸载时停止 UI 更新、精确清理已取得文件,并处理晚成功文件;公开 API 无取消入口。超时清理不恢复为成功,后续操作使用新的请求编号。

App 必须使用包含当前原生实现且身份匹配的联编或自定义基座。修改原生实现、公共 UTS 且影响原生生成物、依赖、权限、Manifest 或原生资源时重新联编/重打基座;仅修改页面、样式、普通资源或文档通常无需重打。WGT 不能修复旧基座原生代码不匹配。独立原生 APK 的结果不代替完整宿主或其他平台通过。

诊断报告、隐私与复制

完整示例默认保留有界日志:普通会话缓存最多 300 条/96×1024 UTF-16 单元,关键错误另保留最多 24 条/24×1024 单元;超限、单条截断、写入失败都有计数。插件诊断快照也有独立容量与丢弃计数。报告中的“完整”指本次快照内的全部保留记录,不是无限历史。

报告包含编号、ISO 时间与 UTC 时区、正文 UTF-16 长度、日志条数及首尾标记。分段固定同一快照,附编号、分段序号和总数;只在实际 uni.setClipboardData.success 后推进,失败或晚/重复回执不能推进。完整报告/当前分段提供可选文本手动复制回退;刷新报告会新建快照并从第一段开始,不清空会话日志。

本轮两宿主均完成完整报告及各七段的实际剪贴板回读,重组时仅归一 Windows CRLF/LF 换行;桌面可选文本经实际选中、Ctrl+C 与回读核对通过。复制失败通过浏览器底层 writeText 拒绝与 execCommand=false 故障注入验证,uni SDK 和页面调用保持真实:失败不推进、恢复后仍复制同一分段。该证据不是操作系统弹窗拒绝;实际浏览器权限拒绝曾被官方 SDK 的备用路径成功处理,手机长按选择与设备剪贴板未验。

日志只记录脱敏参数摘要、类型、长度、阶段、结果元数据、错误字段与耗时;二维码原文、Logo 字节/Data URL、完整路径/URL、Token、Cookie、密码、私钥和个人信息不进入缓存或报告,不自动上传。自行扩展日志时也应先归纳元数据并脱敏,不能只依赖后置正则清理任意原文。

插件和示例版本/源码标记由本次 package 与源码构建生成;它们不是客户安装包实际使用的 HX、编译器、运行时或基座版本。环境字段来自实际 API 或明确构建注入,并标注来源;取不到时写 unknown/原因,不拿开发机环境冒充客户包。Windows LSP 因无法读取平台设置未完成;独立宿主编译、资源导出与浏览器验收不能替代 LSP 正常结果、实际 App 原生联编、Apple 编译或设备/真基座验收。

作者系列 UTS 插件

以下为作者已上架的 UTS 插件,详情见各市场页面或作者主页。

插件 能力方向 插件市场
lizhao-app-keepalive 应用保活、唤醒、自愈与报告 查看插件
lizhao-bg-audio 背景音频播放、队列、倍速与事件 查看插件
lizhao-ble BLE 扫描、连接、读写、通知与自动重连 查看插件
lizhao-call-kit 电话、短信、通讯录原生能力 查看插件
lizhao-camera-pro 原生相机、拍照录像、水印与媒体保存 查看插件
lizhao-cast-screen DLNA 投屏、AirPlay 路由入口 查看插件
lizhao-choose-file 原生文件选择、上传、进度与取消 查看插件
lizhao-device-id 设备标识、隐私策略与诊断 查看插件
lizhao-doc-corrector 文档扫描、矫正、增强与识别 查看插件
lizhao-emu-detect 模拟器环境检测、风险评分与证据 查看插件
lizhao-float-window 悬浮窗、画中画、权限与诊断 查看插件
lizhao-gallery-pro 相册媒体分页、筛选、缩略图与导出 查看插件
lizhao-hce-card NFC 虚拟卡、APDU 交互与 NDEF 标签模拟 查看插件
lizhao-health 健康数据授权、查询、统计与写入 查看插件
lizhao-http-server 本地 HTTP 服务、文件传输与实时通信 查看插件
lizhao-icon-pro SVG 图标组件、多主题与缓存 查看插件
lizhao-id-photo 证件照制作、尺寸换算、换底色与模板换装 查看插件
lizhao-img-eraser 图片去水印、局部修复与原生编辑器 查看插件
lizhao-live-activity 实时活动、系统胶囊与普通通知降级 查看插件
lizhao-nfc-pro NFC 标签读写、NDEF、IsoDep 与诊断 查看插件
lizhao-notify-pro 本地通知、点击动作、进度与定时提醒 查看插件
lizhao-novel-reader 原生小说阅读、仿真翻页与段落评论 查看插件
lizhao-office-view Office 与 PDF 文件预览、进度与缓存管理 查看插件
lizhao-pdf-pro PDF 阅读、签批、真实写回与页面处理 查看插件
lizhao-scan-pro 原生扫码、连续扫码、相册识别 查看插件
lizhao-serial-port 路径串口、USB 串口、多会话收发与诊断 查看插件
lizhao-share-plus 系统分享、远程文件下载后分享 查看插件
lizhao-smart-tts 系统 TTS、云端合成、听书方案 查看插件
lizhao-sqlite-pro 原生 SQLite、迁移、备份与诊断 查看插件
lizhao-sse-pro SSE、Line、JSONL 与 Raw 流式请求 查看插件
lizhao-tcp-pro TCP 客户端、服务端、多连接与诊断 查看插件
lizhao-usb-storage U 盘、移动硬盘文件浏览、读写与批量复制 查看插件
lizhao-video-editor 视频裁剪、压缩、取帧与 FFmpeg/FFprobe 查看插件
lizhao-video-feed 短视频上下滑、短剧选集与分页加载 查看插件
lizhao-video-player 原生视频播放器、清晰度与播放交互 查看插件
lizhao-video-thumb 视频封面、批量取帧与 Base64 返回 查看插件
lizhao-vpn-pro 企业 VPN、IKEv2、安全接入与脱敏诊断 查看插件
lizhao-wechat-kit 微信登录、分享、支付、小程序与客服 查看插件

默认全量复制每次都会生成包含最新环境、SDK快照和保留日志的新报告,无需先点刷新。生成报告失败时不会静默复制旧报告;备用分段继续使用同一固定快照,点击全部复制或刷新报告会开始新的快照。

隐私、权限声明

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

Web生成依赖浏览器Canvas,不申请App权限;选图由宿主API处理,HTTPS Logo按浏览器跨域规则读取。Android/iOS/微信候选实现未完成本次发布支持验收。

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

开发候选:二维码内容在本地处理;仅在明确传入HTTPS Logo时下载指定图片,不发送二维码文本,不默认上传图片或诊断。

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

无

暂无用户评论。