通过Siri通过参数启动应用程序,无捐赠/快捷方式

问题描述 投票:0回答:1

假设我正在开发一个用户可以在其上安装一些互动体验(冥想)的应用。

为了方便起见,我希望我的用户可以说以下话来开始:“嘿,Siri,在冥想中开始Beach Sunset。”

由于某些原因,用户首先要与iOS应用程序中的Beach Sunset进行交互,而without可以通过语音执行此操作。 (例如,他们可能已经通过我的服务的网络应用“拥有”了它。)

也就是说,我希望像“嘿,Siri,开始冥想中的海滩日落”]]这样的语音操作甚至可以without用户先为其设置快捷方式,或者我“捐赠”采取行动。

有可能吗? (我觉得许多默认应用程序都表现出相似的行为,但是也许它们很特殊。)如果没有,那么我能做的第二件事是什么?

Siri知道我的应用程序的语音操作是否需要“捐赠”,还是仅仅是暗示和预测用户行为的机制?

Siri知道我的应用程序的语音操作是否需要“快捷方式”,或者它们仅仅是用户短语定制的一种机制?

我从未向iOS应用添加Siri支持,但似乎“参数”在iOS 13中变得更加强大。This answer暗示在iOS 12中不可能实现类似的功能,但我认为它也在做有些不同(我想启动该应用程序;他们想仅使用Intent UI来“创建对象”。我不知道这是否重要。)

我做了什么

我已经在Start类别(LaunchMeditation)中用单个参数(meditationName)定义了自定义意图。

我考虑了标准的[[Media

意图,但是这里的媒体是交互式的,而不是严格的音频/视频,所以我不想惹麻烦。我已经在我的应用程序中添加了一个Intents Extension,并编写了一个基本测试“处理程序”,试图将冥想名称传递给应用程序:

@interface IntentHandler () <LaunchMeditationIntentHandling> @end @implementation IntentHandler - (id)handlerForIntent:(INIntent *)intent { return self; } - (void)handleLaunchMeditation:(nonnull LaunchMeditationIntent *)intent completion:(nonnull void (^)(LaunchMeditationIntentResponse * _Nonnull))completion { // XXX: Maybe activity can just be nil? NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"com.example.meditations.activity.launch"]; activity.title = [NSString stringWithFormat:@"Launch %@ in Meditations", intent.meditationName]; // Do I need this? activity.userInfo = @{@"meditationName": intent.meditationName}; completion([[LaunchMeditationIntentResponse alloc] initWithCode:LaunchMeditationIntentResponseCodeContinueInApp userActivity:activity]); } - (void)resolveMeditationNameForLaunchMeditation:(nonnull LaunchMeditationIntent *)intent withCompletion:(nonnull void (^)(INStringResolutionResult * _Nonnull))completion { completion([INStringResolutionResult successWithResolvedString:intent.meditationName]); } @end

[当我测试Intents Extension时,我现在可以在Shortcuts中为其创建一个Shortcut,设置其参数,为其命名(如” Beach time”,然后通过告诉Siri该名称来启动它-这就是我< [不要
希望用户必须这样做。

除此之外,Siri回应

Meditations尚未通过Siri添加对此的支持。

…无论我怎么说开始

Beach Sunset

的要求。

“没有增加支持”

听起来很痛苦,就像我只是缺少一些东西。假设我正在开发一个应用程序,用户可以在上面安装一些交互式的小体验(冥想)。为了方便起见,我希望我的用户能够通过说:“嗨,Siri,开始...
ios parameters ios13 siri sirishortcuts
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.