How to send data from Iphone to Apple Watch in OS2 in Objective-C

这一生的挚爱 提交于 2019-11-27 15:18:21
Philip

Here´s a link to a Q/A about WatchConnectivity: Send messages between iOS and WatchOS with WatchConnectivity in watchOS2


I will give you an example go ApplicationContext, there are 2 other messaging techniques with WatchConnectivity. Please watch WWDC2015 session video for those.

First you need to conform to the WCSessionDelegate protocol in the classes you want to send and receive data from/to. E.g both on watch and iPhone.

Basic checking before: (this is just an example, implement better than this)

if ([WCSession isSupported]) {
        WCSession *session = [WCSession defaultSession];
        session.delegate = self;
        [session activateSession];
        NSLog(@"SESSION AVAIBLE");
    }

    //Objective-C
    if ([[WCSession defaultSession] isReachable]) {
        NSLog(@"SESSION REACHABLE");
    }

This will send the data from the phone to the watch.

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

[session updateApplicationContext:@{@"firstItem": @"item1", @"secondItem":[NSNumber numberWithInt:2]} error:&error];

This will receive the data from the phone on the watch.

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

    NSLog(@"%@", applicationContext);


    item1 = [applicationContext objectForKey:@"firstItem"];
    item2 = [[applicationContext objectForKey:@"secondItem"] intValue];
}

The WWDC2015 video on WatchConnectivity is really great, I recommend to check it out.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!