静音 3D 触控快速动作
Posted
技术标签:
【中文标题】静音 3D 触控快速动作【英文标题】:Silent 3D Touch Quick Action 【发布时间】:2015-10-26 09:55:23 【问题描述】:随着新 iPhone 6s/6s+ 的新 3D Touch 功能,我正在尝试向我的应用程序添加一些主屏幕快速操作。
我能够实现在主屏幕上触摸应用程序图标的正常力流 -> 选择可用的快速操作之一 -> 在所有可能的应用程序状态下正确处理它。
我的问题是:是否可以在可用的快速操作中创建静默操作? silent
我的意思是会发生某个动作,但应用程序不会完成启动?或者启动但不会在前台?
更新
我将详细说明我想要实现的目标 - 我希望通过后台交付与 HealthKit
提供类似的行为 - 在商店发生变化时,HealthKit 会唤醒我的应用程序并给我一个机会做后台的某些东西(以 HealthKit 为例 - 查询商店中的新数据)。
在阅读了有关该主题的大部分 Apple 文档后,我觉得当前可用的 API 不可能实现 - 但我希望有人能给我惊喜...
【问题讨论】:
【参考方案1】:不。调用主屏幕快速操作的用户总是会激活应用程序。
如果您的应用已经在运行并被挂起,它会进入前台,并且您的应用委托会收到 application:performActionForShortcutItem:completionHandler:
消息。如果您的应用程序尚未运行(即自安装后未运行,或者之前已被后台/暂停但后来从内存中清除),它将启动并且您的应用程序委托收到application:didFinishLaunchingWithOptions:
消息,然后是application:performActionForShortcutItem:completionHandler:
消息。 (因此,您的did
/willFinishLaunching
处理程序需要检查选项字典以了解通过快速操作启动的可能性。)
无论哪种方式,您的应用都会出现在前台。
【讨论】:
如果我们不添加任何 3D 快速动作相关的实现,我想默认行为是打开共享屏幕而不启动应用程序(Apple 的默认实现)。所以我尝试实现相同的功能,但如果我添加更多原始快速操作,我似乎无法支持它。以上是关于静音 3D 触控快速动作的主要内容,如果未能解决你的问题,请参考以下文章