2016-05-06 5 views
1

Ich hoffe, dass Sie schlaue Leute mir helfen können, da die meisten Daten online veraltet sind. Ich habe eine iPhone App, die finanzielle Informationen anzeigt. Ich möchte dies auf einem Uhren-Bildschirm vorstellen.Aktualisierung Glance Daten in WatchOS2.2

Ich kann die App bekommen, um das Wörterbuch der neuesten Informationen zu senden, und der Blick wird aktualisiert, wenn sowohl der Glance-Bildschirm und Telefon-App geöffnet sind.

Ich würde gerne wissen, wie man den Glance-Bildschirm verwendet, um die Telefon-App nach den neuesten Informationen zu fragen. Die Telefon-App wird wahrscheinlich geschlossen sein, so dass sie aufwachen und dann nach den aktuellen Informationen gefragt werden muss.

Ich bin mit schnellen 7 und WatchOS 2.2 und IOS 9.3

Viele Informationen hier auf Stackoverflow zu watchOS 1 bezieht sich so nicht mehr funktioniert.

Ich freue mich auf Ihre Lösungen.

Antwort

0

Schauen Sie sich WCSession an, da es verschiedene Methoden zum Senden verschiedener Datentypen gibt. Diese Implementierung sendet ein Wörterbuch.

Es muss ein WCSession auf Uhr- und Telefongeräten eingerichtet sein. AppDelegate in didFinishLaunchingWithOptions: und ich verwende das ExtensionDelegate in seiner init Methode. Achten Sie darauf, import WatchConnectivity bei Verwendung . Verwenden Sie AppDelegate als WCSessionDelegate unten.

// AppDelegate.swift 
class AppDelegate: UIResponder, UIApplicationDelegate, WCSessionDelegate { 

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     // Setup session on phone 
     if WCSession.isSupported() { 
      let session = WCSession.defaultSession() 
      session.delegate = self 
      session.activateSession() 
     } 

     return true 
    } 

    // WCSessionDelegate method receiving message from watch and using callback 
    func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) { 

     // Reply with a dictionary of information based on the "message" 
     replyHandler(["Key": "Value"]) 
    } 
} 

Setup-WCSession auf der Uhr:

// ExtensionDelegate.swift 
override init() { 
    let session = WCSession.defaultSession() 
    session.activateSession() 
} 

Nachricht, eines Wörterbuchs aus, um das Telefon, um Informationen in den Rückruf zu erhalten:

// GlanceController.swift 
WCSession.defaultSession().sendMessage(["Please give Glance data": "Value"], replyHandler:{ (response) in 
    // Extract data from response dictionary 
}) { (error) in 
    // Handle error 
} 
Verwandte Themen