• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - Apple Watch Kit 在启动时加载数据

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:15:21 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

如何在 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap