schlafen Ich implementiere einfache One-Line-Kommunikation zwischen iOS App und WatchKit mit SendMessage.iOS-App wird nach 1 Minute der Kommunikation mit Watch WatchKit
Das Problem ist - die Kommunikation ist kontinuierlich. Der Benutzer drückt eine Taste auf AppleWatch, die gleiche Aktion passiert auf Telefon e.t.c. Leider, nach zwei oder drei Aktionen - die iOS App reagiert nicht mehr. Wie von einigen in den Foren empfohlen - ich habe implementiert backgroundTaskWithExpirationHandler
, funktioniert es jedoch nicht (gibt mir nicht einmal eine versprochene drei Minuten Timeout).
Hier ist mein Code in der iOS-App AppDelegate
func session(session: WCSession, didReceiveMessage message: [String : AnyObject]) {
//recieve messages from watch
print(message["b"]! as? String)
let sweetN = message["b"]! as? String
//var sweetB = message["abs"]! as? [Int : Bool]
dispatch_async(dispatch_get_main_queue(), {
let taskID = self.beginBackgroundUpdateTask()
if sweetN == "peeks"{
if WCSession.isSupported(){
let message = [ "gettingData": "datareceived" ]
session.sendMessage(message, replyHandler: { replyDict in }, errorHandler: { error in })
}
}
self.endBackgroundUpdateTask(taskID)
})
}
func beginBackgroundUpdateTask() -> UIBackgroundTaskIdentifier {
return UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler({})
}
func endBackgroundUpdateTask(taskID: UIBackgroundTaskIdentifier) {
UIApplication.sharedApplication().endBackgroundTask(taskID)
}