wysłać słownik do aplikacji iOS przy użyciu:współdzielenia danych między Watch aplikacji i iOS w watchOS2
- (void)sendMessage:(NSDictionary<NSString *, id> *)message
replyHandler:(nullable void (^)(NSDictionary<NSString *, id> *replyMessage))replyHandler
errorHandler:(nullable void (^)(NSError *error))errorHandler;
ale dostaję błąd z tym. Chcę wiedzieć, jak nasza aplikacja macierzysta obsługuje to żądanie w funkcji watchOS2.
W watchOS1 użyłem openParentApplication
, aby pobrać dane z aplikacji nadrzędnej, a Appdelegate
miał handleWatchKitExtensionRequest
, aby obsłużyć to żądanie. Jak sobie z tym poradzimy w watchOS2?
My Controller Interface:
- (void)awakeWithContext:(id)context
{
[super awakeWithContext:context];
if([WCSession isSupported])
{
self.watchSession = [WCSession defaultSession];
self.watchSession.delegate = self;
[self.watchSession activateSession];
}
[self sendRequestWithActionType:@"InitialView"];
}
-(void)sendRequestWithActionType:(NSString *)action
{
NSDictionary *requst = @{@"request":action};
[[WCSession defaultSession] sendMessage:requst
replyHandler:^(NSDictionary *replyHandler) {
[self setTextForLabelWithData:[replyHandler valueForKey:@"response"]];
}
errorHandler:^(NSError *error) {
NSLog(@"");
}
];
}
You powinno być sprawdzanie zasięgu e przed użyciem sendMessage. Jaki błąd dostałeś? – ccjensen
Chcę otrzymać słownik odpowiedziHandler. Powiedz, co mam zrobić w aplikacji na iOS. Myślę, że powinniśmy użyć: - sesja (void): (nonnull WCSession *) didReceiveMessage: (nonnull NSDictionary *) message replyHandler: (nonnull void (^) (NSDictionary * __nonnull)) replyHandler daj mi przykład dla tego – PramukaD