更新记录

0.1.0(2026-08-24) 下载此版本

  • 实现 Android ACTION_SEND / ACTION_SEND_MULTIPLE 系统分享入口。
  • 支持文字、链接、单图、多图和普通文件,附件复制到应用私有缓存。
  • 完成冷启动、运行中回调、最近结果持久化、重复回放与显式清理。
  • 完成 iOS App Group 宿主桥接和 Share Extension 可编译源码模板。
  • 新增交互式收件箱示例页、API 文档、iOS 集成指南与双端测试清单。
  • 通过 Android、iOS 插件模块及 uni-app x 整项目编译。

平台兼容性

uni-app x(4.0)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 微信小程序
× × 5.0 0.1.0 12 0.1.0 × ×

xs-share-receiver

面向 uni-app x App 的系统分享接收 UTS API 插件。接收其他 APP 主动分享的文字、链接、单图、多图和文件,复制附件到应用私有目录,并统一返回结构化结果。

支持平台

  • Android 5.0(API 21)及以上:已包含系统 ACTION_SEND / ACTION_SEND_MULTIPLE 入口、冷启动与运行中回调。
  • iOS 12.0 及以上:已包含 App Group 宿主桥接和可编译的 Share Extension 源码;发布者必须按下方说明生成并签名 .appex
  • 已编译验证:uni-app x App-Android、App-iOS 插件模块与整项目。
  • Web、小程序和 HarmonyOS 暂不支持。

快速使用

import {
  getInitialSharedPayload,
  startShareReceiver,
  stopShareReceiver,
  clearSharedPayload,
  SharedPayload
} from '@/uni_modules/xs-share-receiver'

const initial = getInitialSharedPayload()
if (initial != null) console.log('已有分享', initial)

startShareReceiver((payload : SharedPayload) => {
  console.log(payload.text, payload.url, payload.files)
})

stopShareReceiver()
clearSharedPayload()

API 语义

  • getInitialSharedPayload():读取最近一次尚未清理的分享;没有内容时返回 null
  • startShareReceiver(callback):开始监听。若本地已有尚未清理的内容,会立即回放一次;业务层可用 receivedAt 去重。
  • stopShareReceiver():停止回调,不删除内容。
  • clearSharedPayload():删除结果和插件复制到私有目录的附件。

Android 每次分享最多处理 32 个附件;新分享会替换旧结果并清理旧缓存。sourceApp 依赖来源 APP 是否向系统提供 referrer,可能为 null

Android 配置

插件的 AndroidManifest.xml 声明了透明分享接收 Activity。标准基座不会动态加入新的原生组件,联调和发布必须制作包含本插件的自定义调试基座或正式云打包。插件无需申请存储权限,content:// 内容会在临时读取授权有效时复制到应用缓存目录。

iOS 配置

iOS 接收分享必须有独立 Share Extension 与 App Group。源码位于 ios-extension-source/,完整制作、签名和 ios-extension.json 配置步骤见其中的 README.md

受 iOS 扩展模型限制,Share Extension 保存内容后不会承诺自动拉起主应用;插件会在用户打开或返回主应用时读取 App Group 并回调。未放入已签名 .appex、未配置扩展描述文件或 App Group 时,iOS 宿主桥接仍可编译,但不会出现在系统分享面板。

数据与边界

插件不联网、不上传内容。Android 附件存放在应用缓存目录;iOS 附件存放在 App Group 容器。文件在调用 clearSharedPayload() 后删除,也可能被系统按缓存策略清理,因此业务需要长期保存时应主动移动或复制到自己的持久目录。

隐私、权限声明

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

Android 无需运行时权限但必须使用含插件 Manifest 的自定义基座;iOS 需配置 App Group、Share Extension 与对应描述文件

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

仅在本机读取用户主动分享给 APP 的内容;附件复制到应用私有目录,插件不联网、不上传

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

许可协议

MIT协议

暂无用户评论。