有可能从watchOS 3应用程序唤醒iPhone应用程序吗?



是否可以从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)
}

最新更新