试图在无法从WatchKit打开且无法正常工作的iOS应用程序上调用方法,我尝试了后台调度并使用通知。 iOS应用程序可以从Watch接收消息并发回其ReplyHandler,仅此而已。我什至找不到任何有效的方法,即使是来自iOS应用程序的简单打印语句。 WCSession代码的代码可以正常工作。
WatchConnectionManager文件中的代码:
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
var replyValues = [String : Any]()
DispatchQueue.global(qos: .background).sync {
switch message["command"] as! String {
case "logAttempt":
print("RECEEEEEIVED!!")
notificationCenter.post(name: .UpdateCourseFromWatch, object: nil, userInfo: message)
replyValues["response"] = "RECEEEEEIVED!!: \(message)"
case "getData":
print("Get course data")
replyValues["response"] = "true"
default:
break
}
}
replyHandler(replyValues)
}
手表完美地接收到“ RECEEEEEIVED !!:(message)”的结果。我只是无法在iOS方面做任何事情。 我要实现的是Watch将消息发布到iOS应用程序,然后iOS应用程序将数据保存到数据库。您会认为很简单。
谢谢