如何在不捐赠意图或使用快捷方式的情况下利用 Siri 创建自定义对象?
Posted
技术标签:
【中文标题】如何在不捐赠意图或使用快捷方式的情况下利用 Siri 创建自定义对象?【英文标题】:How can I utilize Siri to create a custom object without donating intents or using shortcuts? 【发布时间】:2019-05-07 20:08:07 【问题描述】:*使用 Swift 4.2 和 Xcode 10.2
我试图通过允许用户免提创建对象来使我的应用程序功能更加丰富。该应用程序旨在使某些对象的创建更容易,因此允许用户通过调用 Siri 创建基本对象会很棒。但是,我希望在首次下载/运行应用程序时已经集成 Siri 功能。
我现在在使用 SiriKit 和快捷方式时遇到的问题:
建议您在移动应用程序中触发相关功能时“捐赠”自定义意图,以便 Siri 可以建议其他时间建议使用快捷方式 - 我希望这只是我不需要的标准功能捐赠”。 我正在处理一个较老的目标用户群,并提示最终用户进入他们的设置以将快捷方式添加到 Siri 并进行额外的设置,这会让很多用户迷失方向。
例如:
我的应用程序用于创建和发布具有名称和颜色属性的简单平面对象。
我想让用户免提初始化 Siri 并像这样创建这个对象:
“嘿 Siri,创建一个名为 Warkhawk 并颜色为蓝色的飞机”
网络上充斥着关于这些新快捷方式的信息,但我不喜欢你必须在触发应用中的功能时“捐赠”意图,然后转到设置以将其实际添加到 Siri。
如何在不使用快捷方式附带的所有附加步骤的情况下利用 Siri 来适应这个用例?
谢谢!
【问题讨论】:
【参考方案1】:若想以更快、更轻松的方式捐赠 Siri INIntent
,您可以使用
INUIAddVoiceShortcutViewController
像 UIImagePickerController 一样工作,它是一个“快捷方式”,可将用户直接带到短语语音记录屏幕。无需离开您的应用,使其更易于使用。
例如guide
【讨论】:
谢谢!这比强迫用户去他们的设置进行设置要好得多。我只是希望有一种方法可以在没有这一步的情况下集成它。但在这成为现实之前,必须这样做。 有没有办法在不使用INUIAddVoiceShortcutViewController
的情况下添加siri 快捷方式。表示我想在不使用任何 UI
的情况下添加快捷方式
据我所知,用户必须通过注册屏幕,如果没有用户通过此屏幕,您无法添加快捷方式。我认为该答案中描述的这种方式是最简单的。苹果总是想把正在发生的事情说得很清楚,如果可能的话,很多应用程序会在用户不知情的情况下添加快捷方式,我知道对于那些性格好的人来说,这最终会很糟糕,但总的来说我相信这是有道理的。【参考方案2】:
不幸的是,此时如果没有用户交互,您将无法做自己想做的事情。
应用可以在一个受支持的intent domains 中公开 Siri Intent,例如拨打 VoIP 电话或进行付款。我认为这些领域中的任何一个都不适合您的任务。
如您所述,在 ios 12 中,应用可以捐赠 Siri 快捷方式。这些在触发词汇方面具有更灵活的格式,但必须由用户设置。
【讨论】:
感谢您的快速回复!自从我开始搞乱自定义意图以来,我注意到您可以添加参数。你不能用那些有快捷方式的吗? 在深入研究之后,似乎自定义意图只是创建灵活快捷方式的一种方式?只是令人困惑,为什么他们不允许您创建自定义意图并直接通过 Siri 公开它。我看到的自定义意图的唯一用例是创建动态快捷方式。可能是我误会了。 好的,谢谢您解决这个问题。令人困惑的地方是自定义意图和快捷方式相交的地方。自定义意图仅对动态创建快捷方式有用。 Apple 的 SYSTEM 意图与 Siri 集成,预设了可以接受输入的预期参数。这是正确的吗? 对不起,我已经更新了我的答案。我把自己弄糊涂了。自定义意图可以有参数,但目前这些参数不能被 iOS 中的 Shortcuts 应用程序公开/使用。您可以在您的应用中将它们与自定义 Intent 处理一起使用 好吧,这太糟糕了。希望我们能在 iOS 13 中获得该功能。谢谢!以上是关于如何在不捐赠意图或使用快捷方式的情况下利用 Siri 创建自定义对象?的主要内容,如果未能解决你的问题,请参考以下文章
Android:在不使用 marshall() 的情况下从 Parcelable 到 Serializable 的任何快捷方式?