Ich möchte eine Sofortnachricht von der Watch-App an die iOS-App senden. Implementiert den folgenden Code in XCode7 Beta 4 Version und halten Sie die Anwendung in beiden Simulatoren im Vordergrund. hier ist der Code, den ich"isReachable" ist falsch, wenn die Nachricht von der Watch-App an die iOS-App gesendet wird
In watchkit interfaceController implementiert
-(void)willActivate { [super willActivate]; if ([WCSession isSupported]) { WCSession *session = [WCSession defaultSession]; session.delegate = self; [session activateSession]; } } -(IBAction)buttonClicked { NSDictionary *applicationDict = [[NSDictionary alloc] initWithObjects:@[@"Hi"] forKeys:@[@"key"]]; if([[WCSession defaultSession] isReachable]) { [[WCSession defaultSession] sendMessage:applicationDict replyHandler:^(NSDictionary *reply) { NSLog(@"%@",reply); } errorHandler:^(NSError *error) { NSLog(@"%@",error); }]; } }
In iOS-App-Klasse
-(void)viewDidLoad { [super viewDidLoad]; if ([WCSession isSupported]){ WCSession *session = [WCSession defaultSession]; session.delegate = self; [session activateSession]; } } -(void)session:(nonnull WCSession *)session didReceiveMessage:(nonnull NSDictionary *)message replyHandler:(nonnull void (^)(NSDictionary * __nonnull))replyHandler { dispatch_async(dispatch_get_main_queue(), ^{ self.testLbl.text = [message objectForKey:@"key"]; [self.view setNeedsDisplay]; }); }
Am Telefon gleich, ich glauben Sie nicht, dass Sie Ihre WCSession-Aktivierung in ViewDidLoad eines ViewControllers durchführen möchten, sollten Sie dies in Ihrem App-Delegaten tun didFinishLaunching – CSmith
@CSmith In der Apple-Dokumentation haben sie nie erwähnt, dass die Aktivierungsmethode im App-Delegaten aufgerufen werden sollte. Wir müssen anrufen, bevor wir irgendwelche Nachrichten senden. lies das Dokument und kommentiere es. [link] (https://developer.apple.com/library/prerelease/watchos/documentation/WatchConnectivity/Reference/WCSession_class/index.html#//apple_ref/occ/instm/WCSession/activateSession) – Nagendra
Sehen Sie sich die Watch Connectivity an WWDC 2015 Video, sie sagen explizit, dass Sie nicht tun, was Sie tun – CSmith