如何在Apple Watch上快速加载数据? UserDefaults自watchOS 2起无效,所以我们只能使用WCSessionDelegate
,对吗?
现在,在Watch App上,我打电话给wcSession?.sendMessage(someThing, replyHandler: someFunc, errorHandler: otherFunc)
,然后在iPhone应用程序上我发回一些数据
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void)
最后在func session(_ session: WCSession, didReceiveMessage message: [String : Any])
的观看应用中收到它,但这需要3秒钟。
在启动时获取数据的更好方法是什么?
答案 0 :(得分:0)
您可以尝试使用回复处理程序功能,而不是启动新邮件。它应该更快。
从观看电话:
func sendRequest() {
if session.activationState == .activated && session.isReachable {
session.sendMessage(["Watch Message" : "Request"], replyHandler: { (reply) in
// Handle reply here
}, errorHandler: { (error) in
print("***** Error Did Occur: \(error) *****")
})
}
}
处理并回复电话:
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
if let messageFromWatch = message["Watch Message"] {
let messageData = messageFromWatch as! String
// Message From Watch to Activate Watch Connectivity Session
if messageData == "Request" {
replyHandler(["Response" : data])
}
}
}