Skip to content

x-share-s 系统分享

调用系统分享,把文本、链接、图片、音视频或任意文件发给其它应用。参数与回调对齐 DCloud uni.shareWithSystem,方法名使用 xShare,避免和 uni.share 重名。

App 端不需要配置微信 / QQ 等三方 SDK。手机上能接收该类型内容的应用都会出现在列表里。

兼容性

HarmonyIOSAndroidWEB小程序
支持支持支持文本/链接图片/视频/文件

建议单次分享不要超过 30MB,部分机型会卡顿。

调用

ts
import { xShare } from "@/uni_modules/x-share-s"

xShare({
  summary: "欢迎使用 x-share-s",
  success: (res) => {
    console.log(res.errMsg)
  },
  fail: (err) => {
    console.log(err.errCode, err.errMsg)
  }
})

未传 type 时按内容自动推断:有图片走 image,有 path 时按扩展名判断,否则为 text

ts
xShare({ summary: "一段文本" })
xShare({ href: "https://uniapp.dcloud.net.cn" })
xShare({ imageUrl: "/static/logo.png" })
xShare({ path: tempFilePath })
xShare({
  type: "file",
  filePaths: [pdfPath],
  title: "分享文件"
})

方法

名称说明
xShare打开分享。App 成功表示已经调起系统面板,不代表用户一定分享成功

参数

XShareOptions

字段说明默认
typetext / image / video / audio / file。不传则自动推断text
titleAndroid 选择器标题;鸿蒙预览标题-
summary文字内容-
href链接,需 http/https-
imageUrl单张本地图片-
imagePaths多张本地图片-
videoPaths本地视频-
audioPaths本地音频-
filePaths本地文件-
path单个本地路径快捷字段-
success成功-
fail失败-
complete结束-

路径支持 /static/...、绝对路径、file://、Android content://。App 只支持本地文件。微信小程序可用本地/临时路径,网络图会先下载到临时文件。

错误码

含义
1001系统错误
1002分享内容为空或 type 非法
1003图片路径无效
1004链接无效
1005视频路径无效
1006文件不存在
1007音频路径无效
1008当前平台不支持
1009用户取消

平台差异

  1. Android 分享链接到微信只能以文本发出;同时带图片和链接时,微信通常只收图片。
  2. iOS 可以把链接作为独立项目分享;图片 + 链接时,部分应用会把图片当题图。选图/选文件返回的 tmp 绝对路径不要再走 convert2AbsFullPath(那是给 /static 用的),否则会报路径无效。
  3. Web 走 navigator.share,仅文本和链接。
  4. 微信小程序:图片用 wx.showShareImageMenu,视频用 wx.shareVideoMessage,文件/音频用 wx.shareFileMessage。一次只分享列表中的第一项,且必须是本地或临时路径(wxfile://http://tmp、选图/截图返回值)。包内 /static/... 会先经 wx.getImageInfo 转成本地路径;网络图会先 wx.downloadFile。文本和链接请用页面 onShareAppMessage
  5. App 的 success 表示系统分享面板已打开。Android / iOS / 鸿蒙无法可靠得知用户最终点了哪个应用。
  6. Android 已内置 FileProvider,一般不用再往工程根目录拷贝清单。
  7. 鸿蒙发起分享不需要在 module.json5 配 skills(那是接收分享用的)。选文件/相册拿到的 URI 只有临时权限,Share Kit 读不到,会提示「文本不存在」或「文件不支持分享」。插件会先拷到应用沙箱,再用 fileUri.getUriFromPath 转成 file://<bundleName>/...,并按后缀填精确 UTD。

版本

版权归 https://xui.tmui.design 你不得修改及二次开发,仅供 TMUI4 会员商用使用。不得转给非 VIP 会员使用,一经查实数倍赔偿,并追究法律责任。

更新日志

1.1.5(2026-08-16)

  • iOS 增加 info.plist 语言配置(zh-Hans 开发语言 + Localizations),系统分享面板不再固定英文。

1.1.4(2026-08-16)

  • iOS 选图后分享不再转 UIImage,并等相册 dismiss 完再 present,避免一直停在「分享中」。

1.1.3(2026-08-16)

  • iOS 选图/选文件后再分享不再先 convert2AbsFullPath:临时绝对路径被当成包内相对路径后会报 1003/1006 路径无效。改为先按原路径/file:// 检查存在,包内 /static 才回退转换。

1.1.2(2026-08-16)

  • 鸿蒙分享文件先拷到沙箱再 fileUri.getUriFromPath,避免选文件临时 URI 被 Share Kit 报「文本不存在」

1.1.1(2026-08-16)

  • 修复微信小程序分享图片报 the type of property "src" is illegal:只传原始字符串路径,先 getImageInfoshowShareImageMenu

1.1.0(2026-08-16)

  • 重写为 DCloud 风格:xShare({ type, summary, href, imageUrl, ... }),带 success / fail / complete
  • 参数规范化,对齐 uni.shareWithSystem;可用 path 快捷分享单个文件,未传 type 时自动推断
  • 微信小程序支持图片(wx.showShareImageMenu)、视频(wx.shareVideoMessage)、文件(wx.shareFileMessage
  • 鸿蒙改为系统 Share Kit;Android 内置 FileProvider

1.0.8(2025-08-17)

  • 兼容原生鸿蒙

1.0.6(2024-09-22)

  • 修改可能的文件无法读取的问题,有的用户把文件存在到非缓存目录.可能导致文件无法读取.

1.0.5(2024-08-24)

  • 经过测试可以在uniapp上分享啦。也能在ios上分享,可以分享文本和链接到微信中,具体操作请购买后联系我。

1.0.4(2024-08-06)

  • 安卓端改了下判断逻辑

1.0.3(2024-08-05)

  • 解决uniapp项目无法在安卓上分享本地图片资源问题

1.0.2(2024-07-30)

IOS支持分享文件,视频,音频,图片到微信。

1.0.1(2024-07-11)

修改支持本地路径文件,兼容uniapp项目。

1.0.0(2024-06-01)

分享内容到其它应用 安卓,ios支持。

最近更新