Wie verwende ich "openParentApplication" und "handleWatchKitExtensionRequest" richtig, damit "reply ()" aufgerufen wird?
Situation Ich benutzeopenParentApplication
in der Watch-App zum Anrufen vonhandleWatchKitExtensionRequest
in der Haupt-App. Dies funktioniert gut im Simulator und auch auf den tatsächlichen Geräten (Apple Watch und iPhone), wenn die iPhone-App aktiv / geöffnet ist.
Problem Wenn ich es auf den tatsächlichen Geräten (Apple Watch und iPhone) starte,handleWatchKitExtensionRequest
gibt keine Daten an @ zurüopenParentApplication
wenn die Haupt-iPhone-App nicht aktiv / geöffnet ist.
Code in InterfaceController.m in der WatchKit-Erweiterung:
NSDictionary *requst = @{ @"request" : @"getData" };
[InterfaceController openParentApplication:requst
reply:^( NSDictionary *replyInfo, NSError *error ) {
// do something with the returned info
}];
Code im App-Delegaten der Haupt-App auf dem iPhone:
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void ( ^)( NSDictionary * ))reply
{
if ( [[userInfo objectForKey:@"request"] isEqualToString:@"getData"] )
{
// get data
// ...
reply( data );
}
}