i trying create app can send information apple watch ios parent app. have written code when run watchconnectivity app, information not transfer between apple watch , parent ios app. may problem code or may because reason watch not start app. have go simulator , click on app started. why code not working?
interfacecontroller.m
#import "interfacecontroller.h" #import <watchconnectivity/watchconnectivity.h> @interface interfacecontroller() <wcsessiondelegate> @property (strong, nonatomic) wcsession *session; @end @implementation interfacecontroller -(instancetype)init { self = [super init]; if (self) { if ([wcsession issupported]) { self.session = [wcsession defaultsession]; self.session.delegate = self; [self.session activatesession]; } } return self; } - (ibaction)catpressed { [self sendtext:@"cat"]; } - (ibaction)dogpressed { [self sendtext:@"dog"]; } - (ibaction)pandapressed { [self sendtext:@"panda"]; } - (ibaction)bunnypressed { [self sendtext:@"bunny"]; } -(void)sendtext:(nsstring *)text { nsdictionary *applicationdict = @{@"emoji":text}; [self.session updateapplicationcontext:applicationdict error:nil]; }
viewcontroller.m
#import "viewcontroller.h" #import <watchconnectivity/watchconnectivity.h> @interface viewcontroller () <wcsessiondelegate> @property (weak, nonatomic) iboutlet uilabel *textlabel; @end @implementation viewcontroller - (void)viewdidload { [super viewdidload]; if ([wcsession issupported]) { wcsession *session = [wcsession defaultsession]; session.delegate = self; [session activatesession]; nslog(@"hiiii"); } } - (void)session:(nonnull wcsession *)session didreceiveapplicationcontext:(nonnull nsdictionary<nsstring *,id> *)applicationcontext { nsstring *text = [applicationcontext objectforkey:@"text"]; dispatch_async(dispatch_get_main_queue(), ^{ [self.textlabel settext:[nsstring stringwithformat:@"text: %@", text]]; }); }
it turns out needed open parent app on iphone first start sharing information between iphone , watch. msu_bulldog suggesting idea.
Comments
Post a Comment