将 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 应用程序吗?如果是怎么办?
当用户将应用程序从手表 OS1 升级到手表 OS2 时,我的手表 OS2 应用程序不显示在 iPhone 的“我的手表”应用程序中