Apple Watch - 如何安排并发症更新以与推送通知同步?
Posted
技术标签:
【中文标题】Apple Watch - 如何安排并发症更新以与推送通知同步?【英文标题】:Apple Watch - how do I schedule a complication update to be in synch with Push notification? 【发布时间】:2015-11-23 19:05:29 【问题描述】:我正在编写一个会议应用程序,参与者可以在其中查看会谈日程、时间和房间号。用户选择他们感兴趣的谈话。手表应用程序将用户的下一个即将到来的谈话显示为并发症。
如果演讲延迟或房间发生变化,我们将向所有与会者发送该演讲的推送通知。该应用还会定期(每 30 分钟)更新复杂功能。如果用户在其应用或手表上选择推送通知,则会更新复杂功能。
此设置有一个用例不会出错: 如果在手机或应用程序上收到推送通知,并且用户在推送上看到房间时间更改但没有选择推送,则推送上的消息将与并发症不同步。
例如:并发症显示: 1:15p Rm 1F 并发症计划每 30 分钟更新一次。 推送在下午 1 点 10 分出现,“您的下一个事件‘全球变暖’被延迟到下午 1 点 45 分”,但用户没有选择它。复杂功能将在下午 1:15 至下午 1:30 继续显示
有什么办法可以避免吗?
【问题讨论】:
【参考方案1】:您可以实现 Background Fetch 并强制更新复杂功能,这样您将拥有下一个方案:
ios:
在UIApplicationDelegate
上实现application:didReceiveRemoteNotification:fetchCompletionHandler:
并在那里获取推送通知。之后使用WatchConnectivity
将获取的数据传输到Watch 并强制更新复杂功能。
watchOS:
在WKExtensionDelegate
上实现didReceiveRemoteNotification:
并在成功获取后强制更新复杂功能。
【讨论】:
不是真的,据我了解,除非用户选择收到的通知,否则应用程序中的任何内容都不会被调用。 你错了,上面提到的所有方法都是独立于用户操作调用的,我已经在我的项目中使用了这个功能。请仔细阅读文档。 @CoolDocMan 以防万一会在此处留下适当的链接:developer.apple.com/library/prerelease/ios/documentation/UIKit/…: 和 developer.apple.com/library/watchos/documentation/WatchKit/…: 我会尝试并回复您。如果可行,将向您发送虚拟啤酒:-)以上是关于Apple Watch - 如何安排并发症更新以与推送通知同步?的主要内容,如果未能解决你的问题,请参考以下文章
在 Apple Watch 上接收来自 iCloud 的推送通知
如何通过 healthkit 使用 Apple Watch 心率更新 iOS 应用程序? (HealthKit 同步)