当AppleWatch在背景状态或Sleepmode中,我们如何将消息从iPhone发送到AppleWatch



我正在处理样本Watch套件应用程序(Apple Watch iPhone)。在这里,我的应用程序可以同步。而且,我也使用数据传输(iPhone到Apple Watch)从事WCSession。当两者处于活动状态时,它都可以正常工作。但是,如果数据是不活动状态(背景状态,睡眠模式或前景状态),我将无法将数据传输到AppleWatch。委托方法未调用。

- (void)applicationDidBecomeActive {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
if ([WCSession isSupported]) {
    WCSession *session = [WCSession defaultSession];
    session.delegate = self;
    [session activateSession];
}
}

这是我的代表方法。

 - (void)session:(nonnull WCSession *)session didReceiveMessage:(nonnull NSDictionary<NSString *,id> *)message replyHandler:(nonnull void (^)(NSDictionary<NSString *,id> * __nonnull))replyHandler {}

请帮助我。

如果配对iOS设备和Apple Watch。然后,当通过使用WCSession发送消息时,它将自动唤醒应用程序。

通过使用follwing代码我解决了我的问题。

在ViewController中:

// Sending data to iphone to applewatch
WCSession *session = [WCSession defaultSession];
    NSError *error;
    [session updateApplicationContext:@{@"counterValue":@"counter", @"userId":@"id"} error:&error];

AppleWatch :( InterfaceController)

//Receiving data in applewatch from iphone
- (void) session:(nonnull WCSession* )session didReceiveApplicationContext:(nonnull NSDictionary<NSString * ,id> *)applicationContext {
}

最新更新