有没有办法直接从iPhone应用程序更新复杂功能?

时间:2015-10-21 18:18:05

标签: apple-watch watch-os-2 apple-watch-complication

如果可能的话,我想让用户完全绕过手表应用程序。

我尝试在ViewController上导入ClockKit来创建CLKComplicationServer的实例。我得到“没有这样的模块”错误。

有没有办法直接与iOS应用程序的复杂功能进行通信?

1 个答案:

答案 0 :(得分:6)

CLKComplicationServerClockKit的一部分,只有watchOS2可用。

您可以使用[WCSession transferCurrentComplicationUserInfo:]从iOS发送复杂数据。不像[WCSession transferUserInfo:]它会唤醒watchOS App,并尽快传递您的信息。

它会唤醒您的watchOS应用,并致电Watch侧-(void)session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *,id> *)userInfo的代表WCSession。在此委托中,您可以使用ComplicationServer,如下所示:

CLKComplicationServer* server = [CLKComplicationServer sharedInstance];
[server.activeComplications enumerateObjectsUsingBlock:^(CLKComplication * _Nonnull each, NSUInteger idx, BOOL * _Nonnull stop) {
    [server reloadTimelineForComplication: each];
}];

最后它会调用你的ComplicationController