我希望将数据发送到我的并发症作为didReceiveRemoteNotification
的一部分来更新所显示的数据,但Apple似乎很少提供关于如何设置此与并发症本身之间关系的文档
创建ComplicationController
时,我是否应该创建WCSession
并开始侦听委托调用?我设法将其放入getPlaceholderTemplateForComplication
,这似乎在iOS应用程序运行时起作用,但当应用程序被杀死(或不再运行)时不。
我很好奇是否有人有一个很好的指南,可以在iOS应用运行时运行时将数据作为远程JSON推送通知的一部分来获取。
答案 0 :(得分:1)
我建议观看WatchConnectivity session from WWDC,因为它涵盖了最后的更新并发症。
总之,在iOS应用中,您可以发送内容:
NSDictionary *userInfo = // data to send
[[WCSession defaultSession] transferComplicationUserInfo:userInfo];
...
- (void)session:(WCSession * __nonnull)session didFinishUserInfoTransfer:(WCSessionUserInfoTransfer *)userInfoTransfer error:(nullable NSError *)error {
// handle error
NSLog(@"%s %@ (%@)", __PRETTY_FUNCTION__, userInfoTransfer, error);
}
在手表方面:
@property WCSession *session;
...
_session = [WCSession defaultSession];
_session.delegate = self;
[_session activateSession];
...
- (void)session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *, id> *)userInfo {
// persist data and trigger reload/extend of complication(s)
}