是否可以从watchOS 3应用程序唤醒iPhone应用程序?
代码的第一部分在watchOS 2上足够了,但即使是这两部分代码也不能在watchOS 3上工作:
初始化:if ([WCSession isSupported]) {
WCSession* session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
在另一个方法上:
if ([WCSession isSupported]) {
WCSession* session = [WCSession defaultSession];
if (session.reachable) { // <-- RETURNS FALSE
NSDictionary *message = @{@"action":@"wakeup"};
[session sendMessage:message replyHandler:nil errorHandler:nil];
}
}
Apple建议使用以下代码:
- (void)session:(WCSession *)session activationDidCompleteWithState:(WCSessionActivationState)activationState error:(NSError *)error {
if ([WCSession isSupported]) {
WCSession* session = [WCSession defaultSession];
if (session.activationState == WCSessionActivationStateActivated) {
NSDictionary *message = @{@"action":@"wakeup"};
[session sendMessage:message replyHandler:nil errorHandler:nil];
}
}
}
迅速版本:
guard WCSession.isSupported() else {
return
}
let session = WCSession.default
if session.activationState != .notActivated {
session.activate()
}
if session.activationState == .activated {
let message = ["action":"wakeup"]
session.sendMessage(message, replyHandler: nil)
}