【问题标题】:How to Share data between iPhone app and applewatch?如何在 iPhone 应用程序和 Apple Watch 之间共享数据?
【发布时间】:2017-04-10 13:27:34
【问题描述】:

我在将数据从 iPhone 应用程序共享到 Apple Watch 时遇到问题。我尝试使用以下代码将 NSMutablearray 共享给 Apple Watch,但它不起作用。

NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:arrStartScore];
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.test.StartScore"];
[defaults setObject:encodedObject forKey:@"WatchHomeViewTableList"];
[defaults synchronize];

用于将数据检索到 Apple Watch

NSUserDefaults *myDefaults = [[NSUserDefaults alloc]                                 initWithSuiteName:@"group.com.test.StartScoreCheck"];

arrStartScore = [myDefaults objectForKey:@"WatchHomeViewTableList"];
NSLog(@"dict....%@",arrStartScore);

【问题讨论】:

标签: ios objective-c watchkit apple-watch


【解决方案1】:

要将数据从手机发送到手表,请使用此代码。

WCSession *session = [WCSession defaultSession];
NSError *error;

[session updateApplicationContext:@{@"message": yourArray} error:&error];

在手表上接收手机数据:

 - (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,NSMutableArray *> *)applicationContext {   
 }

您可以使用在 didReceiveApplicationContext 中访问您的数组

  [applicationContext objectForKey:@"message"];

【讨论】:

    【解决方案2】:

    watchOS3 在手表和手机上分离了 UserDefaults。 AppGroups 可以在一台设备内的一个开发人员的应用程序之间共享数据。为了在设备之间传输数据,请使用 WatchConnectivity 框架。

    Documentation

    【讨论】:

      【解决方案3】:

      您可以使用 WatchKit 连接框架共享数据。有不同的方式可以用于背景或交互。

      查看苹果的video,它解释了 iPhone 和 Watch 之间所有不同的通信方式。

      此外,您可以创建一个单例类的手表连接,并在 iOS 和 WatchOS 中使用它。在两个设备中建立会话并集成委托方法,您就完成了。您现在可以在 iOS 和 WatchOS 之间来回发送和接收消息。

      【讨论】:

        猜你喜欢
        • 2015-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多