鸿蒙学习实战之路-Share Kit系列(1/17)-Share Kit分享服务入门指南

最近好多朋友问我:“西兰花啊,我想在应用里加个分享功能,让用户能把内容分享到微信、微博这些平台,但不知道从哪下手?” 害,这问题可问对人了!

今天这篇,我就手把手带你了解 Share Kit 分享服务,让你知道鸿蒙的分享功能有多强大~全程不超过 10 分钟,看完你就能搞清楚 Share Kit 是啥、能干啥、支持哪些设备!


Share Kit 是啥?

Share Kit(分享服务)是鸿蒙系统提供的跨应用、跨端分享能力。简单说,就是让你能轻松实现:

  • 应用间分享:把内容分享到其他应用(比如微信、微博、华为笔记等)
  • 跨端分享:把内容分享到其他设备(手机、平板、PC/2in1)

这就像前端的分享 SDK(比如微信分享 SDK),但更强大的是,Share Kit 是系统级别的服务,体验更统一、更流畅。


分享面板长啥样?

先看看实际的分享面板效果,让你有个直观感受。

手机上的分享面板(模态弹窗形式):

在这里插入图片描述


核心概念搞清楚

在开始用 Share Kit 之前,先搞清楚几个核心概念,不然容易晕 o(╯□╰)o

宿主应用 vs 目标应用

  • 宿主应用:分享行为的发起者。比如你在自己的应用里点"分享"按钮,你的应用就是宿主应用。
  • 目标应用:分享内容的接收者。比如你分享到微信,微信就是目标应用。

分享面板的四个区域

分享面板分为四个区域,每个区域都有自己的作用:

区域 作用
内容区 显示分享内容的标题、预览图、描述等信息,供用户选择
推荐区 推荐能处理分享内容的设备和目标应用用户(比如最近联系的人)
分享方式区 显示支持分享内容的目标应用列表
操作区 系统提供的复制、保存、另存为、打印等操作

支持哪些设备?

Share Kit 支持多种设备,但不同设备的能力有差异,这个得注意一下!

能力 手机 平板 PC/2in1 TV
系统分享 支持 支持 支持 部分支持(只能分享到周边设备,不能分享给其他应用)
碰一碰分享 支持 不支持 支持 不支持
隔空传送 支持 支持 支持 不支持

🥦 西兰花警告
我有个朋友想在平板上做碰一碰分享功能,结果发现平板不支持,debug 了两小时才发现是设备限制问题!血泪教训啊朋友们!


分享流程是怎样的?

整个分享流程其实很简单,就四步:

在这里插入图片描述

流程说明

  1. 宿主应用构造分享数据:配置要分享的内容(文本、图片、视频、链接等)
  2. 拉起系统分享面板:调用 Share Kit 接口显示分享面板
  3. 用户选择目标:用户选择要分享到的设备或应用
  4. 目标应用处理数据:目标应用接收并处理分享数据

能分享哪些内容?

Share Kit 支持分享多种类型的内容:

内容类型 说明 示例
文本 纯文本内容 一段话、一篇文章
图片 单张或多张图片 照片、截图
视频 视频文件 录像、短视频
链接 App Linking 或普通链接 商品链接、文章链接

🥦 西兰花小贴士
分享内容需要遵循 UDMF(统一数据管理框架)定义的 UTD(统一类型描述符)规范。这个听起来有点复杂,其实就是给每种内容类型一个标准化的标识,方便系统识别。比如 general.text 表示文本,general.image 表示图片。


有什么限制?

Share Kit 虽然强大,但也有一些限制需要注意:

数据量限制

  • 分享数据描述信息总量:不能超过 200KB
  • 分享条目总量:不能超过 500 条

这个限制也合理,免得有人恶意分享超大文件把系统搞崩了。

模拟器支持

Share Kit 支持模拟器开发,但和真机有部分能力差异。测试的时候不用到处借设备了,但最终还是要真机测试一下哦。


碰一碰分享是啥?

碰一碰分享是 Share Kit 的高级功能,让用户通过"碰一碰"两台设备就能快速分享内容。

手机碰一碰分享效果

在这里插入图片描述

手机与 PC/2in1 碰一碰分享效果

在这里插入图片描述

这个功能超酷的,两台设备一碰就能分享,比选来选去快多了!


隔空传送是啥?

隔空传送是另一个高级功能,让用户通过手势就能把内容传送到其他设备。

开启隔空传送的步骤:

  1. 从手机屏幕顶部向下滑动,打开控制中心
  2. 点击"隔空传送"图标,开启隔空传送开关

🥦 西兰花小贴士
当隔空传送开关和隔空截屏开关同时开启时,用户可以通过"一抓一放"的手势,实现隔空截屏+传送,这个体验超爽!


宿主应用 vs 目标应用

Share Kit 有两种接入模式:

宿主应用接入(发起分享)

如果你的应用需要发起分享(比如用户点"分享"按钮),你需要:

  1. 构造分享数据(SharedData)
  2. 构建分享控制器(ShareController)
  3. 显示分享面板

目标应用接入(接收分享)

如果你的应用需要接收分享(比如用户从其他应用分享到你的应用),你需要:

  1. 在 module.json5 中声明支持的 UTD 类型
  2. 构建 UIAbility 或 ShareExtensionAbility
  3. 处理分享数据

下一步学什么?

看完这篇,你应该对 Share Kit 有个整体认识了。接下来可以深入学习:

  1. 宿主应用如何发起分享:学习 ShareController、SharedData 的使用
  2. 分享不同类型的内容:文本、图片、视频、链接的具体实现
  3. 目标应用如何接收分享:UIAbility、ShareExtensionAbility 的配置
  4. 高级功能:碰一碰分享、隔空传送、联系人推荐等

推荐资料

📚 官方文档


我是盐焗西兰花,
不教理论,只给你能跑的代码和避坑指南。
下期见!🥦

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐