用途:帮助开发者在 iOS 应用中构建通过 FaceTime 或 iMessage 连接的实时共享体验,可同步媒体播放、应用状态或自定义数据。
主要能力:定义符合 GroupActivity 协议的活动(如 watchTogether、listenTogether、createTogether、workoutTogether);通过 GroupStateObserver 判断是否处于 FaceTime 或 iMessage 群组会话中;监听 GroupSession 生命周期并处理 .waiting、.joined、.invalidated 状态;使用 GroupSessionMessenger 在参与者之间收发 Codable 消息,并可选 .reliable 或 .unreliable 投递模式;用 AVPlaybackCoordinator 与 AVPlayer 协调媒体播放;用 GroupSessionJournal 传输图片和文件等大数据;通过 GroupActivitySharingController 或 activity.activate() 从应用内发起 SharePlay。
必要用法:需在应用中添加 com.apple.developer.group-session 权限;若要在无 FaceTime 通话时发起 SharePlay(iOS 17+),还需在 Info.plist 添加 NSSupportsGroupActivities。收到会话后必须调用 session.join(),离开或关闭界面时调用 session.leave(),结束全部会话用 session.end()。
限制与注意:GroupActivity 结构需符合 Codable;GroupSessionMessenger 有单条消息大小限制,大文件应改用 GroupSessionJournal;已在 FaceTime 通话中应直接 activate,未处于会话时需先通过 GroupActivitySharingController 选择联系人;应处理后加入的参与者状态同步,并在会话失效时清理 messenger、journal 与任务。资料未提供具体收费、价格或平台可用范围信息。