在不启动应用程序的情况下显示主屏幕操作

Posted

技术标签:

【中文标题】在不启动应用程序的情况下显示主屏幕操作【英文标题】:Display a home screen action without launching the app 【发布时间】:2016-09-22 07:46:59 【问题描述】:

我正在尝试在主屏幕上的应用程序图标上通过 3D 触摸菜单操作呈现共享 UIActivityViewController,我正在执行以下操作:

-(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】:

当您从快捷方式项目中选择任何操作时,它将立即启动您的应用程序。快捷项目的主要目的是快速向用户显示感兴趣的屏幕。使用快捷方式无法达到预期的效果。

【讨论】:

以上是关于在不启动应用程序的情况下显示主屏幕操作的主要内容,如果未能解决你的问题,请参考以下文章

在不启动本机 UI 的情况下添加 CallKit 条目

如何在不唤醒 Android 屏幕的情况下发送通知

如何在此扩展程序中创建一个按钮,在不使用操作按钮的情况下在主应用程序中打开特定视图?

在不阻塞主线程的情况下更新 tableView

如何在不重新加载页面的情况下重新启动 Angular 应用程序?

如何在不重叠的情况下显示多个小吃店