ios - Apple Watch Kit 在启动时加载数据
<p><p>如何在 Apple Watch 上快速加载数据?从 watchOS 2 开始 UserDefaults 不起作用,所以我们只能使用 <code>WCSessionDelegate</code> 对吧?</p>
<p>现在,在 Watch App 启动时我调用 <code>wcSession?.sendMessage(someThing, replyHandler: someFunc, errorHandler: otherFunc)</code>,然后在 iPhone 应用程序上我在 </p> 中发回一些数据
<pre><code> func session(_ session: WCSession, didReceiveMessage message: , replyHandler: @escaping () -> Void)
</code></pre>
<p>最后在 <code>func session(_ session: WCSession, didReceiveMessage message: )</code> 中的 watch 应用程序上接收它,但这需要大约 3 秒。 </p>
<p>在启动时获取数据的更好方法是什么?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您可以尝试使用回复处理程序功能而不是发起新消息。它应该工作得更快。</p>
<p>从 watch 调用这个:</p>
<pre><code>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) *****")
})
}
}
</code></pre>
<p>电话处理和回复:</p>
<pre><code>func session(_ session: WCSession, didReceiveMessage message: , replyHandler: @escaping () -> 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])
}
}
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - Apple Watch Kit 在启动时加载数据,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/47202320/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/47202320/
</a>
</p>
页:
[1]