静音 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 触控快速动作的主要内容,如果未能解决你的问题,请参考以下文章

求教Unity3d的EasyTouch插件的多点触控

iOS 9 快速操作(3D 触控)

微信小程序~触摸相关事件(拖拽操作手势识别多点触控)

怎么通过程序控制unity3d人物动作

如何在 3D 触摸窥视动作的预览动作中访问呈现视图控制器?

3d max 动作Take 001改名