处理个人项目并尝试从Apple Watch接收内容。发送的数据很好,但是手机或手表都没有响应。
在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类中,它还符合WCSessionDelegate
,并具有以下内容可将消息发送到手机。
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)")
}
ExtensionDelegate.swift文件也符合WCSessionDelegate
,并在applicationDidFinishLaunching
内部启动会话。努力做到这一点。
谢谢!
编辑:在appDel中设置手表:
fileprivate func setupWatch() {
if WCSession.isSupported() {
session = WCSession.default
session!.delegate = self
session!.activate()
}
}