Есть ли способ обновить усложнение прямо из приложения для iPhone?

Я бы хотел, чтобы пользователь мог вообще обойти приложение для часов, если это возможно.

Я попытался импортировать ClockKit в свой ViewController, чтобы создать экземпляр CLKComplicationServer. Я получаю сообщение об ошибке «Нет такого модуля».

Есть ли способ связаться с усложнением напрямую из приложения для iOS?


person bkSwifty    schedule 21.10.2015    source источник


Ответы (1)


CLKComplicationServer является частью ClockKit, доступной только для watchOS2.

Вы можете отправить данные для усложнения из iOS, используя [WCSession transferCurrentComplicationUserInfo:]. Не то, что [WCSession transferUserInfo:] Оно разбудит приложение watchOS и доставит ваше сообщение как можно скорее.

Это разбудит ваше приложение watchOS и вызовет делегата -(void)session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *,id> *)userInfo стороны Watch WCSession. В этом делегате вы можете использовать ComplicationServer следующим образом:

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

наконец, он вызовет ваш ComplicationController.

person jeeeyul    schedule 29.10.2015