将 iPhone 应用程序中的数据保存在手表应用程序中

Posted

技术标签:

【中文标题】将 iPhone 应用程序中的数据保存在手表应用程序中【英文标题】:Saving data from iPhone app in watch app swift 【发布时间】:2020-05-15 06:48:21 【问题描述】:

我正在开发一个 iPhone 应用程序,但现在也有一个对应的手表应用程序。用户可以登录到 iPhone 应用程序。即使无法访问 iPhone 或 iPhone 应用程序未运行,我也希望将此登录详细信息(例如访问令牌)获取到手表应用程序中。一旦用户登录到 iPhone 应用程序,我会立即使用 updateApplicationContext 方法将访问令牌放入 watchapp。但是如何将这些数据保存在手表应用程序中,以便如果 iPhone 应用程序甚至没有运行,那么我什至可以在手表应用程序中获得用户的访问令牌?

【问题讨论】:

我认为NSKeyedArchiver 适用于 WatchOS。你已经试过了吗? 我想知道是否可以像在 ios 应用中一样使用手表应用中的 UserDefaults。 是的,你可以这样做。甚至还有一种方法可以在 iPhone 应用和手表应用之间使用共享的用户默认容器来避免数据冗余。 @Adrian 我会试试这个。谢谢 不客气。请让我知道它是否适合您。 【参考方案1】:

最简单的方法是使用共享用户默认容器。

1) 在 Capabilities 选项卡中为所有目标激活 AppGroup。

2) 使用您的组的标识符作为用户默认值:

let userDefaults = UserDefaults(suiteName: "group.com.YourCompany.YourApp")

【讨论】:

这在新的 WatchOS 版本中不起作用(它只在 WatchOS 1 或 2 中起作用)。 WatchConnectivity 必须用于此目的。

以上是关于将 iPhone 应用程序中的数据保存在手表应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

可以将 hr 数据从手表应用程序直播到 iphone 应用程序吗?如果是怎么办?

如何将手表与 iPhone 连接

当用户将应用程序从手表 OS1 升级到手表 OS2 时,我的手表 OS2 应用程序不显示在 iPhone 的“我的手表”应用程序中

在后台将数据从 iWatch 发送到 iPhone

为啥我的 iPhone 无法从 Apple Watch 获取心率数据,但手表扩展程序却可以?

为啥我的 iPhone 无法从 Apple Watch 获取心率数据,但手表扩展程序却可以?