为你的 App 添加 SharePlay:从 FaceTime 到 AirDrop
Add SharePlay to your app
2023年6月5日
一句话判断
SharePlay 不再局限于 FaceTime 通话——iOS 17 支持通过 AirDrop 近距离发起共享活动,覆盖的场景从看剧听歌扩展到了教育、购物、协作等方方面面。
这场 Session 讲了什么
Justin Etzine 和 Priya Shah 介绍了 SharePlay 在 iOS 17 中的全面扩展:
新的发起方式:SharePlay via AirDrop。两个设备靠近就能开始 SharePlay,无需添加联系人、无需在同一个 FaceTime 通话中。这把 SharePlay 的适用场景从”远程共享”扩展到了”面对面共享”——和朋友一起刷短视频、和伴侣一起看房子、和室友一起点外卖。
新的活动类型。除了已有的”一起看”、“一起听”、“一起玩”,新增了 Workout、Shop、Read、Learn、Create Together 五种类型。这些类型影响系统 HUD 中显示的图标和文案。
跨平台、跨场景的连续性。从 AirDrop 发起的 SharePlay 可以无缝切换到 Messages 继续聊天,再一键跳到 FaceTime 通话。tvOS 17 也支持在大屏幕上进行 FaceTime 通话并启动 SharePlay。
端到端加密。SharePlay 使用与 FaceTime 相同的加密通道,Apple 无法看到任何通过 SharePlay 传输的 App 数据。
值得深挖的点
GroupActivity 的元数据设计。定义 GroupActivity 类型时需要指定活动类型,这直接影响系统如何展示你的共享活动。选择正确的类型(比如 “shop” 而不是 “generic”)会让体验更自然。
“已有群组”的价值。Session 反复强调一个观点:用户往往已经在某个群组中了(FaceTime 通话、iMessage 群聊、或者面对面),SharePlay 让你利用这个现成的群组,而不需要用户重新建群或互相添加。
用例的广度。Session 列举了大量可能的用例:教育 App 中的同步笔记、健身 App 中的共享训练计划、美食 App 中的群组点单、购物 App 中的共同浏览、内容类 App 中的协同消费。几乎任何涉及”多人参与”的场景都值得考虑 SharePlay。
代码片段
// 定义带有新活动类型的 GroupActivity
struct GroupOrderActivity: GroupActivity {
var metadata: GroupActivityMetadata {
GroupActivityMetadata(
type: .shopTogether, // iOS 17 新增类型
title: "群组点单",
// 支持的类型:一起看/听/玩/锻炼/购物/阅读/学习/创作
subtitle: "和朋友们一起点外卖"
)
}
}
// SharePlay 的基本启动流程
func startSharePlay() async {
let activity = GroupOrderActivity()
do {
// 发起活动,系统会展示分享界面
_ = try await activity.activate()
} catch {
print("启动 SharePlay 失败: \(error)")
}
}
最佳实践
- 活动类型要准确选择,它影响系统 UI 的展示方式。
- 如果你的 App 已经有单人体验,添加 SharePlay 是最快的社交化路径——不需要自建多人系统。
- 考虑跨设备连续性:用户可能在 iPhone 上开始,在 iPad 或 Apple TV 上继续。
- 隐私是卖点:端到端加密对用户来说是一个重要的信任信号。
- 从 FaceTime 和 Messages 场景开始测试,再扩展到 AirDrop 场景。
还有什么值得关注
- “Build spatial SharePlay experiences” Session 讲了空间计算中的 SharePlay
- “Share files with SharePlay” Session 讲了新的文件传输 API(GroupSessionJournal)
- iOS 17 的 AirDrop Name Drop 功能和 SharePlay via AirDrop 是同一套交互范式
- tvOS 17 支持在 Apple TV 上接听 FaceTime 通话,这对家庭场景的 SharePlay 很有意义