Как правильно использовать «openParentApplication» и «handleWatchKitExtensionRequest», чтобы вызывался «reply ()»?
Ситуация: я используюopenParentApplication
в приложении Watch позвонитьhandleWatchKitExtensionRequest
в основном приложении. Это хорошо работает в симуляторе, а также на реальных устройствах (Apple Watch и iPhone), когда приложение iPhone активно / открыто.
Проблема: Когда я запускаю его на реальных устройствах (Apple Watch и iPhone),handleWatchKitExtensionRequest
не возвращает данныеopenParentApplication
когда основное приложение iPhone не активно / открыто.
Код в InterfaceController.m в расширении WatchKit:
NSDictionary *requst = @{ @"request" : @"getData" };
[InterfaceController openParentApplication:requst
reply:^( NSDictionary *replyInfo, NSError *error ) {
// do something with the returned info
}];
Код в приложении делегата основного приложения на iPhone:
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void ( ^)( NSDictionary * ))reply
{
if ( [[userInfo objectForKey:@"request"] isEqualToString:@"getData"] )
{
// get data
// ...
reply( data );
}
}