双向更新 WCSession 的应用程序上下文

Posted

技术标签:

【中文标题】双向更新 WCSession 的应用程序上下文【英文标题】:Updating WCSession's application context in both directions 【发布时间】:2021-07-01 11:26:41 【问题描述】:

我目前正在学习如何使用 WatchConnectivity 将数据从 iPhone 配套应用程序发送到 Watch 扩展程序。 我下载了 Apple 的 example project,它演示了设备之间通信的不同选项。

对于我的特定用例,我对在手机上更新应用程序上下文并在手表上接收更新后的上下文特别感兴趣。

当我启动 Apple 演示应用程序时,我在手表和手机 UI 中都看到了“更新应用程序上下文”按钮。我希望在点击 Watch 模拟器上的“更新应用程序上下文”按钮时点击 didReceiveApplicationContext,但它从来没有。但是,当点击手表上的按钮时,它确实可以正常工作 - 我在手机上点击了预期的断点。

我还注意到,在手表上的委托回调 activationDidCompleteWith 中返回的会话将 pairedwatchAppInstalled 属性都设置为 false。在手机上调试时,这些都是真的。

假设应用程序上下文可以双向更新,我错了吗?

【问题讨论】:

【参考方案1】:

Apple 支持人员回复我,解释说在模拟器环境中测试 WatchConnectivity “不够”。

【讨论】:

以上是关于双向更新 WCSession 的应用程序上下文的主要内容,如果未能解决你的问题,请参考以下文章

WCSession 无法发送消息

当watchOS应用程序使用HKWorkoutSession在后台运行时如何使WCSession可访问

WCSession 只工作一次

将 WCSession 的委托设置为 nil

WatchOS WCSession sendMessage 唤醒杀死 iPhone 应用程序的调试和状态恢复问题

Apple Watch WCSession 返回 watchAppInstalled false