[FIXED] Ist es möglich, die iPhone-App von der watchOS 3-App aus zu aktivieren?

Ausgabe

Ist es möglich, die iPhone-App von der watchOS 3-App aus zu aktivieren?

Der erste Teil des Codes war für watchOS 2 ausreichend, aber selbst die beiden Teile des Codes funktionieren nicht für watchOS 3:

Initialisierung:

if ([WCSession isSupported]) {
    WCSession* session = [WCSession defaultSession];
    session.delegate = self;
    [session activateSession];
}

Bei einer anderen Methode:

if ([WCSession isSupported]) {
    WCSession* session = [WCSession defaultSession];
    if (session.reachable) { // <-- RETURNS FALSE
        NSDictionary *message = @{@"action":@"wakeup"};
        [session sendMessage:message replyHandler:nil errorHandler:nil];
    }
}

Lösung

Apple hat folgenden Code vorgeschlagen:

- (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];
        }
    }
}

Swift-Version:

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)
}


Beantwortet von –
Dmitry


Antwort geprüft von –
Clifford M. (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like