我可以在 Apple Watch 和今天的扩展中使用相同的应用程序组吗?

Posted

技术标签:

【中文标题】我可以在 Apple Watch 和今天的扩展中使用相同的应用程序组吗?【英文标题】:Can i used same app group in apple watch and today extension? 【发布时间】:2016-07-02 04:14:10 【问题描述】:

我曾使用应用程序组与我的 Apple Watch 和今天的应用程序扩展共享数据。问题是我可以在今天的扩展中获取该应用程序组数据,但我无法在 Apple Watch 中获取这些数据。所以我只是想确保我可以使用应用程序组在今天的扩展程序甚至 Apple Watch 中访问它,这是与 Apple Watch 共享数据的最佳方式吗?

我用它来分享数据到应用组

NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.myapp.data"];
    [sharedDefaults setObject:[[NSUserDefaults standardUserDefaults]objectForKey:@"array1"] forKey:@"arrayVisibleCountryList"];
    [sharedDefaults setObject:[[NSUserDefaults standardUserDefaults]objectForKey:@"array2"] forKey:@"arrayBaseCurrency"];
    [sharedDefaults synchronize];

从应用组检索数据

NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.myapp.data"];
    NSMutableArray *array1=[[sharedDefaults objectForKey:@"array1"]mutableCopy];
    NSMutableArray *array2=[[sharedDefaults objectForKey:@"array2"]mutableCopy];

【问题讨论】:

【参考方案1】:

这仅在 watchOS 1 中有效,此时手表扩展程序在手机上运行,​​并且可以访问手机的应用组容器。

在 watchOS 2 或更高版本中,无法使用应用组在手机和手表之间共享数据。您需要使用Watch Connectivity在手机和手表之间传输数据。

【讨论】:

我也使用过手表连接,但问题是如果我不打开我的实际应用程序,那么我无法将数据同步到我的苹果手表 可以使用sendMessage在后台启动ios应用,然后它可以用请求的数据回复手表。 谢谢兄弟让我试试这个,这真的能帮我解决我的问题

以上是关于我可以在 Apple Watch 和今天的扩展中使用相同的应用程序组吗?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何从 Apple Watch 中的手表扩展发送短信

Apple Watch 扩展只为特定用户安装

带有 Apple Watch 扩展的条纹

将 HealthKit 添加到 Apple Watch 扩展后,应用标识符冲突

将 HealthKit 添加到 Apple Watch 扩展后,应用标识符冲突