更新记录
1.1.13(2026-09-06)
- 归并 uni-app x Android 示例修复:分享入口使用公开 Options 类型构造并保留三类回调,避免工厂对象被错误转换;版本号保持
1.1.13。 - 新增 HarmonyOS 本地多文件系统分享,现有
shareFile({ files })调用无需修改,单次最多分享 500 个本地文件。 - 任一文件不存在或不可读取时整体失败,不会拉起内容不完整的分享面板;远程文件和指定目标应用仍保持原有提示。
- 升级后需要重新构建并安装 HarmonyOS HAP;Android、iOS 的现有调用和能力不受影响。
1.1.12(2026-09-01)
- 新增 HarmonyOS 本地单文件系统分享,项目内静态资源、应用沙箱文件和有效文件 URI 均可沿用现有
shareFile调用。 - 文件不存在时返回
9011003;HarmonyOS 多文件、远程文件和指定目标应用分享仍明确返回9011001。 - 升级后无需修改现有文本、链接或单文件调用代码;需要重新构建并安装 HarmonyOS HAP。
1.1.11(2026-08-03)
- 新增 HarmonyOS 原生文本与链接系统分享:通过系统
ShareController与统一数据类型传递标题、摘要和链接,并保持 success/fail/complete 回调一致。 - 补齐 HarmonyOS 能力探测、分享前预检和文件归一化;文件分享因仍需 URI 授权桥接而明确返回
9011001,不伪造成功。 - 修正示例自动导入入口,uni-app 与 uni-app x 分别指向各自真实存在的示例页,并在 uni-app x 示例中补齐 complete 回调验收日志。
- 新增 HarmonyOS 分享专项守卫,并同步更新平台支持边界;本版本需重新执行 Harmony 原生联编并安装最新 HAP。
- 将发布验收清单迁移到仓库级内部文档,避免内部资料进入插件市场包。
平台兼容性
uni-app(4.84)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | - | - | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.84)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | √ | √ | √ | - |
lizhao-share-plus
lizhao-share-plus 是一个纯 UTS 系统分享 API 插件,面向 uni-app 与 uni-app x。它把文本、链接、图片、视频、普通文件、远程文件下载后分享和 iOS 完成回调统一成一套参数结构,并提供分享前预检,方便业务在真正调起系统分享前先判断能不能分享、会分享什么、用户需要注意什么。
这份文档按由浅入深的顺序组织:先 3 分钟跑通,再接入文件和远程文件,最后看预检、场景预设、完整 API、错误码和平台边界。
接入方式选择
| 场景 | 推荐 API | 适合客户 |
|---|---|---|
| 只分享一段文案 | shareText |
新手快速接入 |
| 分享网页或活动链接 | shareUrl |
活动页、邀请页、内容详情页 |
| 分享本地图片/视频/PDF | shareFile |
报表、海报、附件、业务文件 |
| 分享远程 URL 文件 | shareFile + fileNameStrategy |
文件在服务器/CDN 上,需要插件先下载 |
| 分享前先判断能否分享 | prepareShare |
按钮置灰、业务提示、调试排错 |
| 兼容 lime-share 风格参数 | shareWithSystem |
从旧分享插件迁移 |
3 分钟快速接入
1. 导入插件
import * as LizhaoSharePlus from '@/uni_modules/lizhao-share-plus'
页面使用插件时只导入到插件根目录,不要导入 utssdk/index.uts。
2. 分享文本
// 最小文本分享:适合公告、邀请码、客服文案等纯文本场景。
LizhaoSharePlus.shareText({
title: '系统分享演示',
text: '这是 lizhao-share-plus 的文本分享示例',
success(res) {
console.log('分享面板已调起', res)
},
fail(err) {
console.log('分享失败', err)
}
})
3. 分享链接
// 链接分享会把 text 与 url 一起交给系统分享面板。
LizhaoSharePlus.shareUrl({
title: '活动详情',
text: '把这个活动分享给朋友',
url: 'https://uniapp.dcloud.net.cn/',
complete(res) {
console.log('分享流程结束', res)
}
})
常见增强示例
分享本地文件
// 文件路径必须是 App 端真实可访问路径;图片建议传 image/*,PDF 建议传 application/pdf。
LizhaoSharePlus.shareFile({
preset: 'image',
text: '这是图片分享示例',
file: '/storage/emulated/0/Download/share-card.png',
mimeType: 'image/png',
success(res) {
console.log('文件分享已调起', res.filesResolved)
}
})
HarmonyOS 支持一次分享最多 500 个本地文件,可传项目内 /static/... 路径、应用沙箱绝对路径或有效的 file:// URI;任一文件不存在时整体返回 9011003,不会拉起内容不完整的分享面板。
分享多个文件
// 多文件分享会使用各平台系统原生的多记录分享能力。
LizhaoSharePlus.shareFile({
preset: 'file',
text: '这是多文件分享示例',
files: [
'/storage/emulated/0/Download/report-a.pdf',
'/storage/emulated/0/Download/report-b.pdf'
],
mimeType: 'application/pdf'
})
HarmonyOS 会为每个本地文件创建一条系统分享记录,最多支持 500 条;具体接收应用需要支持并读取多条记录,少数应用可能只处理第一条。
远程文件下载后分享
// Android/iOS 默认会把 http/https 文件先下载到本地缓存,再交给系统分享面板。
LizhaoSharePlus.shareFile({
preset: 'remoteFile',
text: '这是远程 PDF 分享示例',
file: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
mimeType: 'application/pdf',
fileNameStrategy: 'timestamp',
success(res) {
console.log('远程文件已下载并分享', res.filesResolved)
},
fail(err) {
console.log('远程下载或分享失败', err)
}
})
远程文件下载失败会返回 9011004。如果需要自定义落盘目录,传入 downloadDir;如果希望保留原文件名、按 URL hash 命名或按时间戳命名,使用 fileNameStrategy: 'keep' | 'hash' | 'timestamp'。
Android/iOS 会先把远程文件下载到本地缓存后再分享。HarmonyOS 当前要求调用前自行下载为本地文件,直接传远程 URL 会返回 9011001。Android 与 HarmonyOS 的 completed 表示已成功调起分享面板;iOS 的 completed 来自系统完成回调,用户取消时可能为 false。
分享前预检
prepareShare(options) 不会下载文件,也不会弹出系统分享面板。它适合用在正式分享前,给业务按钮置灰、给用户提示原因,或调试客户传入的参数。
// 预检远程文件分享:可以提前知道当前平台是否支持、是否需要下载、会归一出哪些文件。
const prepared = LizhaoSharePlus.prepareShare({
preset: 'remoteFile',
text: '这是远程 PDF 分享前预检示例',
file: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
mimeType: 'application/pdf',
fileNameStrategy: 'timestamp'
})
console.log(prepared.canShare)
console.log(prepared.needsDownload)
console.log(prepared.tips)
返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
| canShare | boolean | 当前参数与平台是否可以继续正式分享 |
| reason | string | 不可分享原因;可分享时通常为空 |
| adapter | string | 当前平台适配器,例如 uts-android、uts-ios |
| preset | SharePresetType | 最终识别出的场景预设 |
| needsDownload | boolean | 正式分享时是否需要先下载远程文件 |
| normalized | ShareOptions | 归一化后的参数 |
| filesResolved | Array |
预检阶段的文件归一结果 |
| tips | Array |
给客户或业务侧展示的接入建议 |
场景预设
preset 用来表达业务意图。传 auto 或不传时,插件会按 files/file/url/text/mimeType 自动推断。
| 预设 | 说明 | 常见参数 |
|---|---|---|
| auto | 自动识别 | 任意分享参数 |
| text | 文本分享 | text/title |
| link | 链接分享 | url/text/title |
| image | 图片分享 | file/files/mimeType=image/* |
| video | 视频分享 | file/files/mimeType=video/* |
| file | 普通文件分享 | file/files/mimeType |
| remoteFile | 远程文件下载后分享 | file/files 传入 http/https |
兼容旧参数
如果旧项目使用 type/title/summary/path 风格参数,可以先用 shareWithSystem 迁移:
// 兼容模式会转换到 shareText/shareUrl/shareFile 主链路。
LizhaoSharePlus.shareWithSystem({
type: 'file',
title: '报告文件',
summary: '请查看这份 PDF 报告',
path: '/storage/emulated/0/Download/report.pdf',
mimeType: 'application/pdf',
fileNameStrategy: 'keep'
})
API 列表
| API | 说明 |
|---|---|
prepareShare(options) |
分享前预检,不调起系统面板 |
canIShare(options) |
简单能力探测 |
normalizeShareFiles(options) |
文件归一化,不触发分享 |
share(options) |
通用分享入口 |
shareText(options) |
文本快捷分享 |
shareUrl(options) |
链接快捷分享 |
shareFile(options) |
文件快捷分享 |
shareWithSystem(options) |
兼容模式分享 |
ShareOptions 参数
| 参数 | 类型 | 必填 | 说明 | 默认值 | 可选参数 |
|---|---|---|---|---|---|
| options | ShareOptions | 是 | 分享参数对象 | 无 | preset / text / title / url / file / files / success / fail / complete |
| options.preset | SharePresetType | 否 | 分享场景预设 | auto |
auto / text / link / image / video / file / remoteFile |
| options.text | string | 否 | 分享文本 | 空字符串 | 无 |
| options.title | string | 否 | 分享标题 | 空字符串 | 无 |
| options.subject | string | 否 | 分享主题,部分系统分享目标会使用 | 空字符串 | 无 |
| options.url | string | 否 | 分享链接,仅支持 http/https |
空字符串 | 无 |
| options.file | string | 否 | 单文件路径或远程文件 URL | 空字符串 | 无 |
| options.files | Array |
否 | 多文件路径或远程文件 URL 列表 | [] |
无 |
| options.mimeType | string | 否 | 分享文件 MIME 类型 | */* |
image/* / video/* / application/pdf 等 |
| options.autoDownloadRemote | boolean | 否 | Android/iOS 远程文件是否先下载到本地缓存后再分享 | true |
true / false |
| options.downloadDir | string | 否 | 远程文件下载目录;不传时使用插件缓存目录 | 插件缓存目录 | 无 |
| options.fileNameStrategy | ShareFileNameStrategy | 否 | 远程文件下载命名策略 | keep |
keep / hash / timestamp |
| options.targetPackage | string | 否 | Android 指定目标 App 包名 | 空字符串 | 如 com.tencent.mm |
| options.chooserTitle | string | 否 | Android 分享面板标题 | 分享到 |
无 |
| options.excludedActivityTypes | Array |
否 | iOS 分享面板隐藏项 | [] |
iOS activity type 字符串 |
| options.success | function | 否 | 成功回调 | 无 | 无 |
| options.fail | function | 否 | 失败回调 | 无 | 无 |
| options.complete | function | 否 | 完成回调 | 无 | 无 |
ShareResult 返回值
| 字段 | 类型 | 说明 |
|---|---|---|
| platform | string | 当前平台,Android 返回 android,iOS 返回 ios,Harmony 返回 harmony |
| completed | boolean | Android/HarmonyOS 表示已成功调起分享面板;iOS 的 completed 来自系统完成回调,用户取消可能为 false |
| activityType | string | iOS 分享活动类型;Android 为空 |
| targetPackage | string | Android 指定包名分享时返回目标包名 |
| filesResolved | Array |
文件归一化结果 |
ShareResolvedFile 返回值
| 字段 | 类型 | 说明 |
|---|---|---|
| original | string | 调用方传入的原始文件路径或远程 URL |
| path | string | 实际分享使用的路径;远程文件成功下载后为本地路径 |
| mimeType | string | 文件 MIME 类型 |
错误码
| 错误码 | 含义 | 说明 |
|---|---|---|
| 9011001 | unsupported | 当前平台或当前分享能力不支持 |
| 9011002 | invalid params | 参数为空、URL 不合法或分享项为空 |
| 9011003 | file unavailable | 本地文件不存在或无法访问 |
| 9011004 | remote download failed | 远程文件下载失败 |
| 9011005 | target app not found | Android 指定包名未找到 |
| 9011006 | permission denied | 权限不足,当前版本通常不主动申请权限 |
| 9011007 | user cancelled | 保留错误码;iOS 取消当前以 success.completed=false 表达 |
| 9011008 | native failed | 原生分享流程异常 |
| 9011009 | unknown | 未知错误 |
平台支持
| 平台 | 是否支持 | 说明 |
|---|---|---|
| Android App | 支持 | 使用系统 Intent 分享面板,支持文本、链接、单文件、多文件、远程文件下载后分享 |
| iOS App | 支持 | 使用 UIActivityViewController,支持真实 completed/activityType 回调 |
| Harmony | 部分支持 | 原生支持文本、链接和最多 500 个本地文件;远程文件与指定目标应用返回 9011001 |
| Web | 暂不支持 | 返回 9011001 |
| 微信小程序 | 暂不支持 | 返回 9011001 |
| 支付宝小程序 | 暂不支持 | 返回 9011001 |
自定义基座说明
当前插件不新增三方 SDK、Manifest、Info.plist、权限、libs、res 或 assets。但 Android/iOS/Harmony UTS 原生逻辑会编译进 App;如果更新了对应平台 index.uts,真机要使用最新能力时,需要重新运行对应平台原生联编并安装最新应用包。只更新 wgt/appResource 不能替换旧包里已编译的 UTS 原生部分。
完整示例
完整页面示例见:
uni_modules/lizhao-share-plus/example/uniapp/share.vue
作者系列 UTS 插件
以下为已在 DCloud 插件市场上架的作者系列 UTS 插件,可按业务场景组合使用。未列出的插件表示当前未确认公开市场页,后续上架后再补充。
| 插件 | 能力方向 | 插件市场 |
|---|---|---|
lizhao-nfc-pro |
NFC 标签读写、NDEF、IsoDep 与诊断 | 查看插件 |
lizhao-float-window |
悬浮窗、画中画、权限与诊断 | 查看插件 |
lizhao-device-id |
设备标识、隐私策略与诊断 | 查看插件 |
lizhao-scan-pro |
原生扫码、连续扫码、相册识别 | 查看插件 |
lizhao-choose-file |
原生文件选择、上传、进度与取消 | 查看插件 |
lizhao-bg-audio |
背景音频播放、队列、倍速与事件 | 查看插件 |
lizhao-smart-tts |
系统 TTS、云端合成、听书方案 | 查看插件 |
lizhao-share-plus |
系统分享、远程文件下载后分享 | 查看插件 |
lizhao-sqlite-pro |
原生 SQLite、迁移、备份与诊断 | 查看插件 |
lizhao-icon-pro |
SVG 图标组件、多主题与缓存 | 查看插件 |
lizhao-cast-screen |
DLNA 投屏、AirPlay 路由入口 | 查看插件 |
lizhao-call-kit |
电话、短信、通讯录原生能力 | 查看插件 |
lizhao-app-keepalive |
应用保活、唤醒、自愈与报告 | 查看插件 |
lizhao-doc-corrector |
文档扫描、矫正、增强与识别 | 查看插件 |
lizhao-emu-detect |
模拟器环境检测、风险评分与证据 | 查看插件 |
lizhao-gallery-pro |
相册媒体分页、筛选、缩略图与导出 | 查看插件 |
lizhao-video-thumb |
视频封面、批量取帧与 Base64 返回 | 查看插件 |
lizhao-ble |
BLE 扫描、连接、读写、通知与自动重连 | 查看插件 |
lizhao-sse-pro |
SSE、Line、JSONL 与 Raw 流式请求 | 查看插件 |
lizhao-pdf-pro |
PDF 阅读、签批、真实写回与页面处理 | 查看插件 |
lizhao-serial-port |
路径串口、USB 串口、多会话收发与诊断 | 查看插件 |
lizhao-wechat-kit |
微信登录、分享、支付、小程序与客服 | 查看插件 |
lizhao-video-editor |
视频裁剪、压缩、取帧与 FFmpeg/FFprobe | 查看插件 |
lizhao-vpn-pro |
企业 VPN、IKEv2、安全接入与脱敏诊断 | 查看插件 |

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 6486
赞赏 5
下载 12609004
赞赏 1949
赞赏
京公网安备:11010802035340号