- AppleWatch Enterforground,Watch 客户端发送字典 "@{@"check":@"I'm Back"}"
- iOS 客户端收到 "@{@"check":@"I'm Back"} " ,使用静态 num i 重播字典为 "@{@"check":@"Rcheck_i"}"
- 杀死 iOS 客户端
- AppleWatch enterbackground, 5 second , enterforround , AppleWatch 从 ios 客户端收到消息为 "@{@"check":@"Rcheck_i"}",怎么了???
谁能帮帮我,代码是...
//iOS客户端
static int i = 0;
- (void) session:(nonnull WCSession *)session didReceiveMessage:(nonnull NSDictionary<NSString *,id> *)message replyHandler:(nonnull void (^)(NSDictionary<NSString *,id> * __nonnull))replyHandler{
dispatch_async(dispatch_get_main_queue(), ^{
i++;
NSString *temKey = [message.allKeys objectAtIndex:0];
NSString *temStr = [NSString stringWithFormat:@"%@_%d",temKey,i];
dispatch_async(dispatch_get_main_queue(), ^{
self.statusLabel.text = temStr;
});
if([message objectForKey:@"check"]){
NSString *temStr = [NSString stringWithFormat:@"Rcheck_%d",i];
replyHandler(@{@"check":temStr});
}
});
}
//AppleWatch 客户端
static int i = 0;
- (void)willActivate {
[super willActivate];
i++;
if ([WCSession isSupported] ) {
WCSession* session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
[self performSelector:@selector(checkAction) withObject:nil afterDelay:0.1];
}
else{
[self.lblLockState setText:@"WATCH NOT support"];
}
}
- (void) checkAction{
WCSession* session = [WCSession defaultSession];
[session sendMessage:@{@"check":@"I'm Back"} replyHandler:^(NSDictionary<NSString *,id> * _Nonnull replyHandler) {
dispatch_async(dispatch_get_main_queue(), ^{
NSString *temStr;
if ([replyHandler objectForKey:@"check"]) {
temStr = [replyHandler objectForKey:@"check"] ;//[NSString stringWithFormat:@"CheckSucc_%d",i];
}
else{
temStr = [NSString stringWithFormat:@"CheckSucc??_%d",i];
}
[self.lblLockState setText:temStr];
});
} errorHandler:^(NSError * _Nonnull error) {
dispatch_async(dispatch_get_main_queue(), ^{
NSString *temStr = [NSString stringWithFormat:@"CheckFail_%d",i];
[self.lblLockState setText:temStr];
});
}];
}