在您的主目标的 Info.plist 中,添加键 Supports Live Activities 作为 Boolean,并将其设置为 YES。
将 Supports Live Activities 键添加到 Info 并将其值设置为布尔值 YES
如果您以编程方式设置它,应该如下所示:
info.plist
<key>NSSupportsLiveActivities</key><true/>
更新 Live Activities 时,您可以选择设置”优先级”,Apple 使用它来确定更新的紧急程度。Apple 有内部阈值,会对过于频繁使用高优先级标志的请求进行限制。如果您的 Live Activities 用例依赖于更频繁的高优先级更新,您可以按照 Apple 开发者文档的指示,将键 NSSupportsLiveActivitiesFrequentUpdates 作为布尔类型设置为 YES 添加到您的 Info.plist 中。当 Live Activity 超过其推送预算时,用户将看到一个对话框,如果他们允许 Live Activity 继续,预算将自动增加以提供无缝的用户体验。
target 'OneSignalWidgetExtension' do use_frameworks! pod 'OneSignal/OneSignal', '>= 5.0.0', '< 6.0'end
# Uncomment the next line to define a global platform for your project# platform :ios, '9.0'target 'Demo Momenta' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! pod 'OneSignal/OneSignal', '>= 5.0.0', '< 6.0' pod 'OneSignal/OneSignalInAppMessages', '>= 5.0.0', '< 6.0'endtarget 'OneSignalNotificationServiceExtension' do use_frameworks! pod 'OneSignal/OneSignal', '>= 5.0.0', '< 6.0'endtarget 'OneSignalWidgetExtension' do use_frameworks! pod 'OneSignal/OneSignal', '>= 5.0.0', '< 6.0'end
关闭 Xcode 并运行 pod repo update && pod install 来安装 OneSignalLiveActivities pod。如果在执行此操作后仍然看到”No such module ‘OneSignalLiveActivities‘“错误,您可以通过转到您的 “Widget Extension Target” > General > Frameworks and Libraries > + icon 手动添加依赖项。选择 OneSignalLiveActivities 框架:
Task { for await content in activity.contentUpdates { print("LA activity id: \(activity.id), content update: \(content.state)") }}// Example output:// LA activity id: EFE6D54D-F7E1-45EF-9514-4C2598F8DED2, content update: ContentState(message: "My message from payload")
跟踪生命周期变化:
Task { for await state in activity.activityStateUpdates { print("LA state update: \(state)") //If you wanted to do something based on the state, you would use this: if state != ActivityState.active { //Do something here } }}// Example output 1 - LA ended, but still visible// LA state update: active/* State can be equal to 4 possible values on the ActivityState enumactive, dismissed, ended, and stale*/
您的应用可能已经发送了一系列推送通知,而您设计的 Live Activity 替代了这些推送通知的需要。例如,如果您通过推送发送比分更新,您可以通过 Live Activity 来替代。为了确保您的用户不会收到太多消息,我们建议当您的用户选择加入 Live Activity 时,添加一个数据标签。通过添加此数据标签,您可以从可能包含相同或类似内容的推送消息中排除具有此数据标签的用户。阅读更多关于数据标签和细分的信息。
在您的 API 请求中,确定您设置的 priority 级别。如果您将其设置为 10(最高优先级),请尝试将其降低到 5 并重新测试。Apple 会根据他们自己的内部速率限制对发送过于频繁的请求进行限制。
如果您的用例依赖于更频繁的更新,请按照 Apple 开发者文档的指示,将键 NSSupportsLiveActivitiesFrequentUpdates 作为布尔类型设置为 YES 添加到您的 Info.plist 中。当 Live Activity 超过其推送预算时,用户将看到一个对话框,如果他们允许 Live Activity 继续,预算将自动增加以提供无缝的用户体验。