2015-03-12 4 views
1

Возможно ли, что приложение WatchKit является контроллером для его родительского приложения iOS?WatchKit App как контроллер для устройства iOS

Я хочу иметь кнопки в приложении WatchKit, которые вызывают действие в приложении iPhone, но я не могу найти способ добиться этого. Пробовал отправить уведомление - без радости.

Пробовал использовать WKInterfaceController.openParentApplication, но это тоже не работает.

Может кто-нибудь указать мне в правильном направлении?

Спасибо.

Кен

+0

Да, вы можете. См. Этот http://stackoverflow.com/questions/27190949/apple-watch-watchkit-extension-and-main-application/27410392#27410392 для отправки данных в приложение iOS. –

+0

Из моего чтения, которое открывает приложение только на телефоне в фоновом режиме. Не то, что мне нужно – macgeezer

+0

Это правда, но если пользователь уже открыл приложение, вы можете управлять живым приложением. У меня есть приложение, которое делает именно это. Когда пользователь открывает приложение на своем iPhone, в приложении часов есть действия, которые обновляют пользовательский интерфейс приложения iOS. –

ответ

0

Вот что мой handleWatchKitExtensionRequest выглядит. Проверьте правописание этого метода в коде. Вы не указали это правильно в комментарии, и это приведет к сбою непризнанного селектора.

-(void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply 
{ 
    NSString* command = [userInfo objectForKey:@"command"]; 
    NSString* uuid = [userInfo objectForKey:@"uuid"]; 

    if (command == nil) 
    { 
     reply(nil); 
    } 
    else 
    { 
     if ([command isEqualToString:@"startTrip"]) 
     { 
      ... 
      //The uuid of the trip is returned to the watch app 
      reply(@{@"uuid": uuid}); 
     } 
     else if ([command isEqualToString:@"stopTrip"]) 
     { 
      ...     
      reply(nil); 
     } 
     else if ([command isEqualToString:@"pauseTrip"]) 
     { 
      ... 
      reply(nil); 
     } 
     else if ([command isEqualToString:@"resumeTrip"]) 
     { 
      ...     
      reply(nil); 
     } 
    } 
}