watchkit - ApplicationContext 属性总是返回一个空字典

标签 watchkit watchconnectivity

我正在尝试从 WCSession 获取最新数据我不明白为什么即使我刚刚收到 didReceiveApplicationContext称呼。
更多细节可以直接在代码中获得:

//Watch Code

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)
    if (WCSession.isSupported()) {
        session = WCSession.defaultSession()
        session?.delegate = self
        session?.activateSession()
        verifyUser()
    }
}

// 1. This function is called, with the applicationContext data 
func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {
    print("CONTEXT \(applicationContext)")
}

// 2. I manually trigger this call from the watch with a button.
// even if I call this function after the previous function (1) it always print an Empty ([:]) applicationContext. 
@IBAction func printContext(){
    print(session?.applicationContext)
}

我期待 applicationContext使用 updateApplicationContext 始终使用最新信息集更新属性因为我总是使用相同的 WCSession通过 WCSession.defaultSession 获得适用于 iOS 和 Watch 应用。我对连接有什么误解吗?!

最佳答案

receivedApplicationContext就是你要找的。 applicationContext的内容是您发送的内容,而不是收到的内容。

关于watchkit - ApplicationContext 属性总是返回一个空字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33565925/

相关文章:

ios - Apple Watch 强制在特定屏幕上的 iphone 前台打开应用程序?

ios - 将音频从 Watch 流式传输到 iPhone 以使用 SFSpeechRecognizer

ios - 向 Apple Watch 扩展程序发送通知

ios - Apple Watch 和 openParentApplication 在后台

swift - WatchOS 2 中的 NSUserDefaults 和应用程序组

ios - 检查 iPhone 是否与 Apple Watch 配对?

ios - WatchKit 应用程序通过 Crashlytics 挂起并崩溃

ios - 通过多个 Controller 从 iPhone 向 Watch 发送和接收消息

ios - 观看连接 : didReceiveMessage not called

ios - 如何仅针对 iOS 9 用户安全地将 `Watch Connectivity` 与仍以 iOS7 作为最低开发目标的应用程序集成?