2017-06-21 3 views
1

Ich habe seit mehreren Stunden versucht, eine Möglichkeit zu finden, eine globale Variable von der Apple Watch auf das iPhone zu senden.Übertragen von Daten von Apple Watch auf iPhone in Swift

Es gibt eine Menge von Fragen stoßen Daten von iPhone an Apple-Uhr übertragen, aber nicht umgekehrt in Swift 3.

Dies ist kein Duplikat, weil ich zur Übertragung von Daten aus dem Apple-Watch iPhone will, nicht umge Versa.

Wie kann ich das tun?

+1

Mögliches Duplikat von [Text von iOS-Label an WatchOS-Label übergeben - swift-] (https://stackoverflow.com/questions/44673494/pass-text-from-ios-label-to-watchos-label-swift) –

Antwort

1

Übertragen von Daten von Apple Watch auf iPhone ist sehr ähnlich umgekehrt.

Für globale Variable sollten Sie wahrscheinlich updateApplicationContext() von WCSession verwenden:

let session = WCSession.default() 
if session.activationState == .activated { 
    session.updateApplicationContext(["my_global": g_myGlobal]) 
} 

Auf dem iPhone Sie Delegierten auf den Standard WCSession zuweisen soll und aktivieren. Im WCSessionDelegate, implementieren Sie die folgende Methode:

func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) { 
    let receivedGlobal = applicationContext["my_global"] as? TypeOfTheGlobal 
} 

Alternativ können Sie sendMessage(_:replyHandler:errorHandler:) verwenden, aber dies wird iPhone erfordern erreichbar zu sein.

Im Allgemeinen würde ich Ihnen empfehlen, Zak Kautz Beratung zu folgen und über WatchConnectivity zu lesen. Dies ist die gebräuchlichste Art der Kommunikation zwischen Uhr und Telefon.

Verwandte Themen