OGeek|极客世界-中国程序员成长平台

标题: ios - Apple Watch Kit 在启动时加载数据 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 19:15
标题: ios - Apple Watch Kit 在启动时加载数据

如何在 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 秒。

在启动时获取数据的更好方法是什么?



Best Answer-推荐答案


您可以尝试使用回复处理程序功能而不是发起新消息。它应该工作得更快。

从 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://ogeek.cn/) Powered by Discuz! X3.4