我正在开发Apple Watch应用程序。当iPhone发生特定事件时,我可以从iPhone向Apple Watch发送数据。但是,我希望在开始运行时观看数据。我应该如何处理这个问题?什么是最有效的方法呢?WatchOS从iPhone获取数据
回答
WatchConnectivity
首先,都应该相互通信的两个类(iOS和watchOS)需要符合的<WCSessionDelegate>
和#import
的WatchConnectivity
框架
要发送的数据,你需要检查你的设备是否能够发送数据
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
NSLog(@"WCSession is supported");
}
然后,如果你想使用“交互式消息传递”(森dMessage API)的,你需要看看其他设备可达第一:
if ([[WCSession defaultSession] isReachable]) {
//Here is where you will send you data
}
的“后台操作”的API不要求对应设备是在一次调用API WCSession点到达。
您有几种选择,当涉及到你的应用程序之间传输数据,在Apple Documentation他们是这样描述的:
使用
updateApplicationContext:error:
方法进行交流只有最近的状态信息发送到对方。当对方醒来时,它可以使用这些信息来更新自己的状态并保持同步。使用此方法发送新字典会覆盖以前的字典。使用
sendMessage:replyHandler:errorHandler:
或sendMessageData:replyHandler:errorHandler:
方法立即传输数据到对方。当您的iOS应用和WatchKit扩展都处于活动状态时,这些方法可用于即时通信。使用
transferUserInfo:
方法在后台传输数据字典。您发送的字典排队等待交付给对方,并在当前应用程序被暂停或终止时继续传输。使用transferFile:metadata:
方法在后台传输文件。如果您想发送的不仅仅是一个简单的值字典,请使用此方法。例如,使用此方法发送图像或基于文件的文档。
我会给你一个例子,如何发送/接收数据与应用上下文
发送数据:
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);
NSString *item1 = [applicationContext objectForKey:@"firstItem"];
int item2 = [[applicationContext objectForKey:@"secondItem"] intValue];
}
更多关于WatchConnectivity的信息我真的推荐看WWDC2015 session video并阅读Apple Documentation on WatchConnectivity
- 1. iPhone从plist获取数据
- 2. 获取iPhone数据
- 3. Iphone,从Uiimageview获取图像数据
- 4. iPhone Sqlite,从数据库获取数据时获取重复数据库
- 5. 使用iPhone从sqlite获取数据作为整数使用iPhone
- 6. iPhone:获取数据关闭
- 7. iPhone - 核心数据中获取数据
- 8. 如何从iphone的sqlite数据库获取int数据
- 9. iPhone应用程序从Mysql数据库获取数据
- 10. 从数据库获取数据到科尔多瓦iphone的文本字段iphone
- 11. 获取从数据
- 12. 如何在iPhone中获取XLS数据?
- 13. JSON编码 - 获取MySQL数据到iPhone
- 14. iPhone核心数据获取主键
- 15. 从获取请求中获取数据?
- 16. 从获取请求获取div数据
- 17. 如何从Apple Watch获取传感器数据到iPhone?
- 18. 在Mac上从iPhone获取实时数据
- 19. 从地图视图(Iphone IOS)获取DetailView中的xml数据
- 20. 从web-services iphone获取数据的不同方式?
- 21. 从iPhone上的SQLite3获取数据时出现问题
- 22. iphone编程从远程服务器获取数据
- 23. iPhone/Sqlite - 如何只从服务器获取更改的数据?
- 24. 服务器没有从iPhone获取正确格式的数据?
- 25. 如何从web服务器获取数据到iphone或ipod
- 26. 计时器每x分钟从服务器获取数据:iphone
- 27. 更好地处理从iPhone中的服务器获取数据
- 28. 如何从json-rpc webservice获取数据:iPad/iPhone/Objective C
- 29. 从越狱iphone外壳脚本获取地理位置数据
- 30. 从远程sql服务器获取数据 - iPhone sdk