3

我正在编写一个会议应用程序,参与者可以在其中查看会谈日程、时间和房间号。用户选择他们感兴趣的谈话。手表应用程序将用户的下一个即将到来的谈话显示为并发症。

如果演讲延迟或房间发生变化,我们将向所有与会者发送该演讲的推送通知。该应用程序还会定期(每 30 分钟)更新并发症 如果用户在她的应用程序或手表上选择推送通知,则并发症会得到更新。

此设置有一个用例不会跳动:如果在手机或应用程序上收到推送通知,并且用户在推送中看到房间时间更改但没有选择推送,那么推送上的消息将是与并发症不同步。

例如: 并发症显示: 1:15p Rm 1F 并发症计划以 30 分钟间隔更新。推送在下午 1 点 10 分出现,“您的下一个事件‘全球变暖’被延迟到下午 1 点 45 分”,但用户没有选择它。复杂功能将在下午 1:15 至下午 1:30 继续显示

有什么办法可以避免这种情况?

4

1 回答 1

2

您可以实现 Background Fetch 并强制更新并发症,这样您将拥有下一个方案:

iOS:实现 application:didReceiveRemoteNotification:fetchCompletionHandler:并在UIApplicationDelegate那里获取推送通知。之后,使用WatchConnectivityWatch 传输获取的数据并强制更新复杂功能。

watchOS:didReceiveRemoteNotification:WKExtensionDelegate成功获取后强制执行复杂更新。

于 2015-11-23T20:16:06.587 回答