3

可能であれば、ユーザーが時計アプリを完全にバイパスできるようにしたいと思います。

のインスタンスを作成するために、ViewController に ClockKit をインポートしようとしましたCLKComplicationServer。「そのようなモジュールはありません」というエラーが表示されます。

iOS アプリからコンプリケーションと直接通信する方法はありますか?

4

1 に答える 1

7

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

于 2015-10-29T07:23:08.537 に答える