我正在处理样本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 {
}