Задать вопрос
@chingi3

Как запустить iOS приложение из INRequestRideIntent extenstion'а?

Стоит задача создать INRequestRideIntent extension для заказа такси через Siri. Наладить контакт с Siri получилось,но никак не получается запустить само приложение из extention'а. В связи с этим вопрос, что надо сделать, чтобы запуск приложения стал возможным? Я поюзал приложение Uber, у них приложение запускается после указания количества пассажиров.

Заранее спасибо!

RideIntentHandler.m

- (void)confirmRequestRide:(INRequestRideIntent *)intent completion:(void (^)(INRequestRideIntentResponse * _Nonnull))completion {
    INRideOption *rideOption = [[INRideOption alloc] initWithName:@"blah" estimatedPickupDate:[NSDate dateWithTimeIntervalSinceNow:300]];
    rideOption.userActivityForBookingInApplication = [[NSUserActivity alloc] initWithActivityType:@"blahblah"];

    INRideStatus *rideStatus = [[INRideStatus alloc] init];
    rideStatus.rideOption = rideOption;
    rideStatus.estimatedPickupDate = [NSDate dateWithTimeIntervalSinceNow:300];
    rideStatus.rideIdentifier = [NSUUID UUID].UUIDString;

    INRequestRideIntentResponse *response = [[INRequestRideIntentResponse alloc] initWithCode:INRequestRideIntentResponseCodeSuccess userActivity:nil];
    response.rideStatus = rideStatus;

    completion(response);
}


AppDelegate.m

- (void)application:(UIApplication *)application handleIntent:(INIntent *)intent completionHandler:(void (^)(INIntentResponse * _Nonnull))completionHandler {  
         [Utils showCommonAlertWithMessage:@"blah"];  
      
         if ([intent isKindOfClass:[INRequestRideIntent class]]) {  
              [Utils showCommonAlertWithMessage:@"blah"];  
         }  
    }  
      
    - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {  
         [Utils showCommonAlertWithMessage:@"blah"];  
      
         if ([userActivity.interaction.intent isKindOfClass:[INRequestRideIntent class]]) {  
              NSLog(@"%@", userActivity.userInfo);  
              [Utils showCommonAlertWithMessage:@"blah"];  
         }  
      
         return YES;  
    }  
      
    - (void)application:(UIApplication *)application didFailToContinueUserActivityWithType:(NSString *)userActivityType error:(NSError *)error {  
         [Utils showCommonAlertWithMessage:@"blah"];  
    }
  • Вопрос задан
  • 74 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы