4

对于新 iPhone 6s/6s+ 的新 3D Touch 功能,我正在尝试向我的应用程序添加一些主屏幕快速操作。

我能够实现在主屏幕中触摸应用程序图标的正常力流 -> 选择可用的快速操作之一 -> 在所有可能的应用程序状态下正确处理它。

我的问题是:是否可以在可用的快速操作中创建静默操作?silent我的意思是会发生某个动作,但应用程序不会完成启动?或者启动但不会在前台?

更新
我将详细说明我想要实现的目标 - 我希望通过HealthKit后台交付具有与提供类似的行为 - 在商店发生变化时,HealthKit 唤醒我的应用程序并让我有机会做某事背景(以 HealthKit 为例 - 查询商店中的新数据)。

在阅读了关于该主题的大部分 Apple 文档后,我觉得使用当前可用的 API 是不可能的 - 但我希望有人会让我感到惊讶......

4

1 回答 1

2

没有。调用主屏幕快速操作的用户始终会激活应用程序。

如果您的应用程序已经在运行并被挂起,它会进入前台并且您的应用程序委托会收到application:performActionForShortcutItem:completionHandler:消息。如果您的应用程序尚未运行(即自安装后未运行,或者之前已被后台/暂停但后来从内存中清除),它将启动并且您的应用程序委托收到application:didFinishLaunchingWithOptions:消息,然后收到application:performActionForShortcutItem:completionHandler:消息。(因此,您的did/willFinishLaunching处理程序需要检查选项字典以了解通过快速操作启动的可能性。)

无论哪种方式,您的应用都会出现在前台。

于 2015-10-26T18:27:50.587 回答