要求
- 我们SDK的最新版本。
- iOS 16.1+ 和 iPadOS 17+
- 使用.p8 APNs密钥。苹果不支持实时活动的p12证书。
- Xcode 14或更高版本
设置
1. 设置我们的SDK
确保您已在应用上设置了最新版本的移动SDK。实时活动不适用于网站或我们的Web SDK。
Unity
基于Unity的移动应用跨平台SDK指南。

React Native 和 Expo
React Native和Expo环境的设置说明。

Flutter
使用Dart的Flutter应用SDK指南。

Ionic 和 Ionic Capacitor
Ionic和Capacitor混合移动应用的设置。
.NET MAUI
与.NET MAUI应用集成的指南。

华为Android原生
使用HMS推送服务的华为设备SDK设置。
2. 添加新的setupDefault
方法
为了告诉OneSignal SDK管理DefaultLiveActivityAttributes
类型的实时活动生命周期,您可以调用setupDefault
方法。此方法允许您使用启动实时活动和更新实时活动 API来启动/更新/结束默认实时活动。
3. 创建活动小组件
1
更新您的Info.plist
在Xcode中,打开主目标的
Info.plist
,添加键Supports Live Activities
作为Boolean,并将其设置为YES
。
在Info中添加支持实时活动键并将其值设置为Boolean YES
更新实时活动时,您可以设置”优先级”,苹果使用该优先级来确定更新的紧急程度。苹果有内部阈值,会限制过于频繁使用高优先级标志的请求。如果您的实时活动用例需要更频繁的高优先级更新,您可以根据苹果开发者文档的指导,将键
NSSupportsLiveActivitiesFrequentUpdates
作为Boolean类型设置为YES添加到Info.plist中。当实时活动超出其推送预算时,用户将看到对话框,如果他们允许实时活动继续,预算将自动增加以提供无缝的用户体验。2
创建Widget扩展
在Xcode中,转到File > New > Target… > Widget Extension。
选择并按Next。通过提供名称(示例:
如果提示激活方案,点击Don’t Activate。

在Xcode中为应用添加新的Widget扩展目标。
OneSignalWidget
)配置Widget扩展,并确保选择Include Live Activity。然后点击Finish。
实时活动的Widget扩展选项。

实时活动的Widget扩展选项。
3
将OneSignalXCFramework添加到Podfile
在项目的Targets列表中找到您的widget扩展目标名称。示例名称为
打开您的关闭Xcode并运行
OneSignalWidgetExtension
。
找到您的widget扩展目标名称
Podfile
并添加以下代码。将OneSignalWidgetExtension
替换为您的widget扩展目标名称。Podfile
pod repo update && pod install
以安装OneSignalLiveActivities
pod。4. 设置LiveActivity.swift文件
在Xcode中,打开_WidgetExtensionLiveActivity.swift_文件。 在屏幕右侧打开检查器面板。在目标成员中,点击**+**按钮并选择您的Runner目标。
允许主目标成员
Swift
测试实时活动
- 启动应用
- 查看我们启动实时活动API参考中的所有可能字段。这些字段的结构可能因您设置UI的方式而有所不同。例如:
"event_updates"
:这是实时活动启动后可以更新的动态数据(代码示例中context.state
之后的任何内容)。由于我们有context.state.data,我们会向此字段添加数据对象以及我们在代码示例中添加的消息字典等任何其他字段。使用方法请参见下面的示例请求。"event_attributes"
:这是在推送启动请求中设置的静态数据,在实时活动被移除或覆盖之前保持相同的值。
-
使用推送启动时,您在请求中设置
"activity_id"
,而不是在代码中。使用不同的活动ID将启动新的实时活动。使用相同的活动ID将覆盖当前使用该ID的widget。 -
确保您已更改URL路径中的OneSignal应用ID和Authorization头中的Rest API密钥。如果您使用默认设置,则无法更改
DefaultActivityAttributes
类型。另请注意,添加到路径的活动类型区分大小写,应与您定义的内容或下面示例中使用的默认活动匹配。
curl