【发布时间】:2015-07-02 07:55:59
【问题描述】:
我看到similar question 发布了关于如何在 Swift 中来回发送数据的帖子。我在问同样的问题,但在 Objective-C 中。我也看过苹果的transition docs。
我最好使用清晰的示例,而不是讲课材料。因此,如果有人实现了这一点并且不介意分享,那将不胜感激。
【问题讨论】:
标签: ios objective-c watchkit apple-watch
我看到similar question 发布了关于如何在 Swift 中来回发送数据的帖子。我在问同样的问题,但在 Objective-C 中。我也看过苹果的transition docs。
我最好使用清晰的示例,而不是讲课材料。因此,如果有人实现了这一点并且不介意分享,那将不胜感激。
【问题讨论】:
标签: ios objective-c watchkit apple-watch
这是关于 WatchConnectivity 的问答链接:Send messages between iOS and WatchOS with WatchConnectivity in watchOS2
我会给你一个例子去 ApplicationContext,还有另外 2 种使用 WatchConnectivity 的消息传递技术。请观看 WWDC2015 会议视频。
首先,您需要在要发送和接收数据的类中遵守 WCSessionDelegate 协议。例如在手表和 iPhone 上。
之前的基本检查:(这只是一个例子,实现起来比这个更好)
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
NSLog(@"SESSION AVAIBLE");
}
//Objective-C
if ([[WCSession defaultSession] isReachable]) {
NSLog(@"SESSION REACHABLE");
}
这会将数据从手机发送到手表。
WCSession *session = [WCSession defaultSession];
NSError *error;
[session updateApplicationContext:@{@"firstItem": @"item1", @"secondItem":[NSNumber numberWithInt:2]} error:&error];
这将在手表上接收来自手机的数据。
- (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContext {
NSLog(@"%@", applicationContext);
item1 = [applicationContext objectForKey:@"firstItem"];
item2 = [[applicationContext objectForKey:@"secondItem"] intValue];
}
WatchConnectivity 上的 WWDC2015 视频真的很棒,我建议你去看看。
【讨论】:
'https://github.com/kristinathai