如何在 Apple Watch 上快速加载数据?从 watchOS 2 开始 UserDefaults 不起作用,所以我们只能使用 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])
中的 watch 应用程序上接收它,但这需要大约 3 秒。
在启动时获取数据的更好方法是什么?
您可以尝试使用回复处理程序功能而不是发起新消息。它应该工作得更快。
从 watch 调用这个:
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])
}
}
}
关于ios - Apple Watch Kit 在启动时加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47202320/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |