更新记录

1.0.0(2026-10-29)

  • 新增企业微信初始化、能力检测、打开客户端、授权登录与文本、图片、文件、视频、链接、小程序六类分享API。
  • 新增Android/iOS官方SDK原生混编、固定公开依赖、客户端检测、请求隔离、取消超时与释放流程。
  • 新增分享受理与真实可关联回执分离、结果未知观察、统一错误码及有界脱敏诊断。
  • 新增uni-app与uni-app x真实调用示例、完整环境报告、固定快照分段复制和手动复制回退。
  • 新增客户接入说明、原生验收夹具、公共行为与双宿主资源检查;本版为候选源码,Apple编译、匹配基座及真实企业业务须另行验收。

平台兼容性

uni-app(5.33)

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

uni-app x(5.33)

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

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

企业微信授权登录与分享 UTS 插件(Android/iOS)

介绍

lizhao-wecom通过企业微信官方移动端SDK,为uni-app和uni-app x提供Android/iOS企业内部应用授权码登录与内容分享。当前为开发候选源码,尚未发布到插件市场;可用性以实际编译和匹配原生包的验收结果为准。

功能特色

能力 API及作用
企业账号授权 initialize注册企业配置,login取得一次性code和state,由业务后端继续验证身份
六类内容分享 shareText、shareImage、shareFile、shareVideo、shareLink、shareMiniProgram
明确分享结果 提交成功固定为dispatched;onShareResult仅通知实际且可关联的SDK回执
客户端与能力检查 getCapabilitiesSync区分安装、未安装、查询失败和不支持;openApp打开企业微信
生命周期控制 cancelRequest停止本地等待;release释放本模块资源,隔离迟到/重复回执
完整排查报告 双宿主示例有底部日志、一键完整复制、固定快照分段与复制失败手动入口

适合哪些场景

场景 推荐能力与边界
企业内部App成员登录 企业自建应用移动端SSO;插件只交授权码,后端完成成员校验、账号绑定与业务会话
企业内资料分发 文本、图片、文件、视频或业务链接;接收方和发送由企业微信客户端交互决定
企业业务小程序入口 分享已与企业应用关联的小程序卡片,可指定页面和本地预览图
客户现场排查 一次复现后复制完整脱敏报告,核对包身份、SDK/宿主版本、操作与原生诊断

本插件不提供H5/扫码登录、服务商代开发SSO、企业群发接口、微信朋友圈、客户联系人自动选择或后台代发消息。Harmony、Web和小程序不提供上述原生业务;导入后的业务调用返回明确不支持错误。

下载与导入

步骤 操作
保留完整源码 将完整uni_modules/lizhao-wecom/导入项目,不单独拷贝平台index文件
使用根入口 import { initialize, login } from '@/uni_modules/lizhao-wecom',不导入utssdk内部文件
uni-app示例 注册uni_modules/lizhao-wecom/example/uniapp/index.vue;使用Vue2/Vue3通用选项式API
uni-app x示例 注册uni_modules/lizhao-wecom/example/uniappx/index.uvue;当前主验证模式为Vapor
Android依赖 固定Maven依赖在uni_modules/lizhao-wecom/utssdk/app-android/config.json;仓储通过构建阶段解析,不在运行时下载SDK
iOS依赖 固定CocoaPods依赖在uni_modules/lizhao-wecom/utssdk/app-ios/config.json;SDK归档从腾讯官方地址解析
原生前提 增加SDK/UTS原生实现后,重新原生联编或打自定义基座,普通资源/WGT更新不能补齐旧基座原生代码

在企业微信管理后台建立企业内部自建应用并开启移动端授权,取得企业corpId、应用agentId及Android/iOS各自的scheme。Android后台包名和签名必须与实际APK一致;iOS后台Bundle ID必须与实际应用一致。scheme使用后台原值,不能自行拼接。

iOS还须把该真实scheme注册到宿主URL Types。uni_modules/lizhao-wecom/utssdk/app-ios/Info.plist仅内置安装查询白名单,不填虚构企业scheme。按项目现有iOS配置合并自己的URL Scheme,不能覆盖其他登录或支付插件的条目。插件通过UTS Hook转交回跳,不需要更改客户真实业务调用路径;完整回跳链仍须用匹配包实测。

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

模块一:初始化并取得授权码

以下函数使用真实回调接口,参数由业务配置传入。serverUrl是用户自有HTTPS登录接口(需自行部署),企业Secret/access_token只保留在该后端。

import { initialize, login } from '@/uni_modules/lizhao-wecom'

export function authorizeEnterprise(corpId: string, agentId: string, scheme: string, serverUrl: string): void {
  initialize({
    corpId: corpId, agentId: agentId, scheme: scheme,
    success: () => {
      login({
        timeoutMs: 120000,
        success: (result) => {
          // 只交给业务后端;不把code/state打印或写进复制日志。
          uni.request({
            url: serverUrl, method: 'POST',
            data: { code: result.code, state: result.state, corpId: corpId },
            success: (reply) => { console.log('后端已响应,请按业务合同处理状态码', reply.statusCode) },
            fail: (error) => { console.error('业务后端请求失败', error.errMsg) }
          })
        },
        fail: (error) => { console.error(error.errSubject, error.errCode, error.errMsg) },
        complete: (result) => { console.log('授权调用结束', result.requestId, result.status) }
      })
    },
    fail: (error) => { console.error(error.errSubject, error.errCode, error.errMsg) }
  })
}

后端先使用企业凭据取得企业access_token,再携带code请求企业微信获取用户信息接口,核对业务成员和事务后签发自有会话。取得code或HTTP200都不等于业务已经登录成功。若后端要求绑定自己的登录事务,传入后端生成的一次性随机state并在服务端独立校验;客户端缺省state由原生安全随机源产生,仅用于本次SDK回执关联。

模块二:分享链接并观察真实回执

import { shareLink, onShareResult, offShareResult, cancelRequest } from '@/uni_modules/lizhao-wecom'
import { WeComShareResult } from '@/uni_modules/lizhao-wecom'

export function sendEnterpriseLink(url: string, title: string): string {
  let requestId = ''
  const listener = (result: WeComShareResult): void => {
    if (result.requestId != requestId) return
    console.log('真实SDK回执', result.status, result.errCode)
    offShareResult(listener)
  }
  onShareResult(listener)
  requestId = shareLink({
    url: url, title: title,
    success: (result) => { console.log('已提交企业微信', result.requestId, result.stage) },
    fail: (error) => { offShareResult(listener); console.error(error.errCode, error.errMsg) },
    complete: (result) => { console.log('提交调用结束', result.status) }
  })
  // 页面离开时:offShareResult(listener),并调用cancelRequest(requestId)停止本地观察。
  // 无真实回执时,最终结果应显示未知;不要凭App返回前台显示“分享成功”。
  return requestId
}

同一SDK通道存在请求或分享观察时,新业务请求返回忙碌错误。需要继续下一项时,等待回执/观察结束,或显式调用cancelRequest停止旧观察;停止观察不会撤回已经提交的内容。

模块三:文件、小程序与生命周期

Android文件支持可读content URI并读取真实DISPLAY_NAME,不要求另一插件把URI猜成文件路径。图片/视频可先用宿主选择API取得本地临时路径;文件来源不足或无访问权限时明确失败。调用方负责保持源文件在提交期间可读,不删除客户原件。

import { shareFile, shareMiniProgram, release, getDiagnosticsSnapshot } from '@/uni_modules/lizhao-wecom'

export function sendExistingFile(filePath: string, fileName: string): string {
  return shareFile({ filePath: filePath, fileName: fileName,
    success: (result) => { console.log('文件提交已受理', result.requestId) },
    fail: (error) => { console.error(error.errCode, error.errMsg) }
  })
}
export function sendAssociatedMiniProgram(userName: string, path: string, title: string): string {
  return shareMiniProgram({ userName: userName, path: path, title: title,
    success: (result) => { console.log('小程序提交已受理', result.requestId) },
    fail: (error) => { console.error(error.errCode, error.errMsg) }
  })
}
export function disposeEnterpriseModule(): void {
  release({
    success: () => { console.log('本模块可释放资源已处理') },
    fail: (error) => { console.error('释放未完全成功', error.errCode, error.errMsg) },
    complete: () => { const snapshot = getDiagnosticsSnapshot(); console.log('保留诊断条数', snapshot.entries.length) }
  })
}

双宿主完整页面及复制路径见uni_modules/lizhao-wecom/example/uniapp/index.vue、uni_modules/lizhao-wecom/example/uniappx/index.uvue。示例所有外部操作都由用户点击,不自动登录或发送资料。

API 用途速查

API 用途 返回
initialize 注册企业配置 void,回调结果
getCapabilitiesSync 安装、平台、SDK及回执能力 WeComCapabilities
openApp 请求打开企业微信 void,回调仅表示打开受理
login 授权并交付一次性code/state 请求ID,结果通过回调
shareText 文本提交 请求ID
shareImage 图片提交 请求ID
shareFile 文件提交 请求ID
shareVideo 视频提交 请求ID
shareLink 网页链接卡片提交 请求ID
shareMiniProgram 关联小程序卡片提交 请求ID
onShareResult 注册实际SDK分享回执监听 void,同函数不重复注册
offShareResult 移除同一监听函数 void
cancelRequest 停止本地请求/观察 WeComCancelResult
release 终止等待并释放本模块资源 void,失败保留真实原因
setDiagnosticsEnabled 控制深度日志,关键错误仍保留 void
getDiagnosticsSnapshot 读取独立脱敏快照 WeComDiagnosticsSnapshot

参数、默认值和限制

参数 类型 必填 说明 默认值 可选参数
initialize.corpId string 是 企业ID,非空 无 无
initialize.agentId string 是 数字字符串 无 无
initialize.scheme string 是 本平台后台生成的合法URL Scheme原值 无 无
login.state string/null 否 非空一次性值,最多1024个UTF-8字节;回执精确匹配 原生安全随机 业务事务随机值
login.timeoutMs number/null 否 毫秒整数,10000–300000 120000 范围内整数
share.timeoutMs number/null 否 文件读取/准备/SDK受理总预算,毫秒整数1000–120000 30000 范围内整数
share.receiptTimeoutMs number/null 否 受理后独立观察窗口,毫秒整数10000–300000 120000 范围内整数
shareText.text string 是 非空,插件保护上限10240个UTF-8字节 无 无
filePath string 文件类是 本地/file URI/uni资源路径;content URI仅Android且可读 无 真实文件来源
fileName string/null 否 合法叶文件名;省略读取真实元数据,不猜URI尾段 真实文件名 255个UTF-8字节以内
shareLink.url string 是 HTTP(S)链接,最多8192个UTF-8字节 无 无
shareLink.title string 是 非空,最多512个UTF-8字节 无 无
shareLink.summary string/null 否 最多1024个UTF-8字节 不传 空摘要
shareLink.thumbnailPath string/null 否 本地图片,最多32768字节;显式图片不静默压缩 不传 本地路径
shareMiniProgram.userName string 是 关联小程序原始ID,含@app后缀 无 无
shareMiniProgram.path string/null 否 原始页面路径,最多4096个UTF-8字节,不预先URL编码 默认页面 指定页面
shareMiniProgram.title string 是 非空,最多512个UTF-8字节 无 无
shareMiniProgram.previewImagePath string/null 否 本地预览图,最多131072字节;显式图片不压缩 真实宿主应用图标 本地路径
success/fail/complete function 否 异步派发;success/fail互斥,complete跟随且各至多一次 无 见结果说明
onShareResult/offShareResult.listener function 是 保存同一函数以解除监听 无 WeComShareResultListener
cancelRequest.requestId string 是 本插件返回的请求编号 无 无
setDiagnosticsEnabled.enabled boolean 是 仅深度日志开关,不清空已有诊断 false true/false

超时可选参数的null与省略相同;NaN、无穷、小数、越界或错误类型不能用默认值掩盖。文件类资源保护上限100MiB,这是插件策略。Android上游文本限制按UTF-16字符计数,插件为跨端保护收紧到UTF-8字节;不要把插件限制误解为全部SDK的原始限制。

返回、事件与诊断

能力快照中,六类分享的available同时检查初始化、客户端安装与最低SDK接口能力;reason说明不可用原因。loginSupported表示当前原生SDK接口能力,业务成员身份由后端继续验证。

登录成功包含requestId/platform/code/state/elapsedMs。code/state只在该回调交付,不进入complete、错误或诊断。complete包含errSubject/errCode/errMsg/operation/requestId/stage/status/elapsedMs,其中status描述这次本地API调用终态。

分享成功包含requestId/shareType/stage=dispatched/receiptSupport/elapsedMs。最终事件包含requestId/shareType/source=sdkResponse/status/errCode/error;confirmed仅代表SDK确认,不保证收件人收到或阅读。没有可靠关联的回应时不发布假事件,快照观察状态为unknown。

取消结果包含cancelled/scope/externalResult,scope为request、receipt或none。错误对象在统一字段外保留stage/operation/requestId/externalResult/nativeCode/nativeType/nativeMessage/nativeCause/nativeStack,原生字段无法采集时为null;原生错误码和插件错误码分开保存。

诊断返回独立快照,保留原始错误语义、时间、级别、模块、关联编号和耗时,限制500条/524288个UTF-8字节并显式计数丢弃/截断。深度日志关闭仍保留关键操作与错误。复制报告来自固定快照;系统复制API成功回执与实际剪贴板回读是不同验证层次。

错误码说明

统一errSubject='lizhao-wecom'。SDK原生码在nativeCode中,不能直接当作下表插件错误码。取消、超时与结果未知不代表外部操作已撤销。

错误码 含义 建议
9359001 参数无效 按参数表修正类型、范围和必填值
9359002 当前平台不支持 只在已适配App端使用原生业务
9359003 未初始化 先完成initialize
9359004 企业/回跳配置无效 核对后台、实际包身份与注册scheme
9359005 未安装企业微信 安装并登录客户端后重试
9359006 客户端能力不足 升级客户端并查看能力快照
9359007 已有请求/观察 等待终态,或停止旧本地观察
9359008 SDK注册失败 核对配置与原生诊断
9359009 SDK未受理请求 不提示成功,查看原生原因
9359010 用户拒绝授权 仅在SDK可区分拒绝时使用,不盲目重试
9359011 用户取消操作 真实SDK取消,允许用户重新发起
9359012 本地等待取消 外部界面/发送未被撤销
9359013 操作超时 已发出的操作可能结果未知,以externalResult为准
9359014 state不匹配 该回执被隔离,原合法请求继续等待
9359015 文件不存在/不可访问 保持实际URI权限和源文件可读
9359016 读取/临时副本失败 核对空间、权限和原生原因
9359017 格式/容量限制 准备合法格式和限制内资源
9359018 SDK返回失败 查看nativeCode与脱敏原生详情
9359019 原生桥接/回执无效 复制完整诊断,核对匹配原生包
9359020 释放终止本地请求 不视作外部操作已撤销
9359021 编号不存在/已结束 取消返回false,不影响其他请求
9359022 资源释放失败 不提示全部释放成功,保留报告排查

注意事项

发布兼容性状态

宿主与运行方式 Android iOS
uni-app Vue2/Vue3、App vue 支持 待确认,需新云包及匹配基座验收
uni-app x(已验证Vapor集成) 支持 待确认,需新云包及匹配基座验收

Vapor兼容性声明为支持。nvue、Harmony、Web、小程序和云端不提供企业微信原生业务。平台集成支持不代表无需企业后台配置即可登录,也不代表分享已送达;真实企业应用、账号及最终回执仍需接入方验收。标题中的iOS表示提供对应实现,当前发布兼容性保留待确认。

  • 宿主目标为uni-app Vue2/Vue3和uni-app x;Android目标API21起、iOS目标12起,实际最低要求还受当前宿主和依赖限制。Harmony、Web、小程序不提供原生登录/分享,不能因这些端可导入就标为业务支持。
  • 当前Windows可以核对资源生成、Android原生与依赖;Apple SwiftCompile/链接、完整匹配宿主回跳和真实企业微信账号验收必须分别取得证据,不能用本地资源导出代替。候选源码不代表已完成全部宿主/设备验收。
  • Android只使用正常网络权限和精确包查询,不请求全盘文件、通讯录、定位或电话权限。content URI需要调用方已经持有合法读取许可;插件不会为了日志额外申请无关权限。
  • iOS需要URL查询白名单和宿主真实回跳scheme。iOS SDK没有unregister方法,release只清本模块会话、回调与本地配置,不承诺撤销SDK全局注册。Android实际detach与本模块会话清理分别处理。
  • uni_modules/lizhao-wecom/utssdk/app-ios/PrivacyInfo.xcprivacy按Apple官方用途说明声明系统单调时钟用于应用内请求耗时和计时器(35F9.1)。报告仅保留本次操作的耗时,不输出原始系统启动时间;该清单不代替接入方对企业微信SDK及整个App数据处理的隐私说明。最终合并结果须在Apple归档中核对。
  • 显式图片不静默压缩;默认小程序图取真实宿主图标,读取或准备失败会返回真实错误。远程文件不在插件内自动下载;代码包静态资源由平台官方路径接口解析,实际原生可读性仍会检查。
  • SDK受理后的文件可能仍被外部消费,取消/释放不会立即删除仍需保留的自有副本。缓存有条数/体积/有效期边界,诊断会记录保留与清理;不删除调用方原件,不把本地清理称为撤回分享。
  • 用户主动授权/分享时,官方SDK向企业微信客户端传递必要授权参数或所选分享内容。请在业务隐私政策披露SDK用途与腾讯规则:企业微信登录/分享SDK个人信息保护规则。插件不接收企业Secret/access_token,不默认上传客户日志。
  • 诊断必须去除授权码、state、Token、Cookie、个人信息、客户文件内容及敏感路径。请通过示例底部完整报告提供故障信息,避免把原始账号凭据或客户文件发到聊天/代码库。
  • 增删UTS原生代码、SDK依赖或平台配置后,必须重新原生联编或制作对应自定义基座。仅更新页面资源或WGT不能修复旧基座缺少SDK/入口类的问题。

作者系列 UTS 插件

下表来自项目统一的已发布作者插件清单;当前企业微信候选不加入已上架列表。

插件 能力方向 插件市场
lizhao-alipay-kit 支付宝授权登录、App 支付与脱敏诊断 查看插件
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 微信登录、分享、支付、小程序与客服 查看插件

隐私、权限声明

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

Android声明普通INTERNET权限及五项SDK客户端包可见性查询,不申请QUERY_ALL_PACKAGES或存储权限。iOS声明企业微信查询Scheme;宿主须配置真实URL Scheme及平台要求的回跳。系统媒体选择按宿主API和实际系统授权处理,不为采集诊断额外申请权限。

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

用户主动调用时,企业微信官方SDK处理企业/应用标识、授权请求及所选分享内容;授权码与state只交业务成功回调,企业Secret及access_token须留服务端。插件在本机保存有界脱敏诊断与分享缓存,不默认上传日志;SDK隐私政策和应用自身告知由接入方核实并展示。

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

无

暂无用户评论。