Отображение действия на главном экране без запуска приложения

Я пытаюсь представить общий доступ к UIActivityViewController из действия сенсорного меню 3D на значке приложения на главном экране. Я делаю следующее:

-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {
  completionHandler([self handleShortcutItem:shortcutItem]);
}

- (BOOL)handleShortcutItem:(UIApplicationShortcutItem *)shortcutItem {
  BOOL handled = NO;
  if ([shortcutItem.type containsString:@"share"]) {
    handled = YES;
    UIActivityViewController *activityVC =
    [[UIActivityViewController alloc] initWithActivityItems: @[ @"test" ] applicationActivities:nil];
    [self.window.rootViewController presentViewController:activityVC animated:YES completion:nil];
  }
  return handled;
}

В результате запускается приложение и отображается UIActivityViewController. Я пытаюсь отобразить UIActivityViewController без запуска приложения.

Я видел такое поведение в популярных приложениях, таких как Booking и AirBnB.

1 ответ

Когда вы выбираете какое-либо действие из элемента ярлыка, оно сразу же запускает ваше приложение. Основной целью ярлыка является быстрое отображение интересующего пользователя экрана. Вы не можете достичь ожидаемого случая с помощью элемента быстрого доступа.

Другие вопросы по тегам