在AppDelegate内部,我在内部启动了一个会话
didFinishLaunchingWithOptions
它符合
WCSessionDelegate
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
var replyValues = [String : Any]()
switch message["command"] as! String {
case "logAttempt":
print("Log attempt")
replyValues["response"] = "true"
case "getData":
print("Get course data")
replyValues["response"] = "true"
default:
break
}
replyHandler(replyValues)
在WatchKit类中,它也符合
并有以下信息发送到手机。
session.sendMessage(data, replyHandler: { replyHandler in
print(replyHandler)
if let response = replyHandler["response"] as? String {
print("app: Response from app to watch: \(response)")
} else {
print("error: Somethings wrong!: \(replyHandler["response"])")
}
}) { error in
print("Error: \(error.localizedDescription)")
}
WCSessionDelegate
applicationDidFinishLaunching
谢谢
fileprivate func setupWatch() {
if WCSession.isSupported() {
session = WCSession.default
session!.delegate = self
session!.activate()
}
}