Tag: sirikit

“ Hey Siri…”和其他重要人物– Cory D. Wiles –中

“嘿Siri …” 到目前为止,我的主要工作之一就是将对Siri的支持添加到“有意义的他人”中。 自发布以来,以及iOS中对SiriKit的后续更新以来,开发人员能够利用这项技术向其应用程序添加全新维度的能力一直是我想要冒险的领域。 为了在您的应用程序中利用Siri,它必须属于一个Intent域 。 SiriKit定义了用户可以发出的请求类型(称为意图)。 相关的意图被分组到域中,以明确您在应用程序中可能支持的意图。 例如,邮件域具有发送邮件,搜索邮件以及将邮件标记为已读或未读的意图。 资源 Significan Other使用INMessaging域。 在INMessaging域中,由INMessagesDomainHandling协议定义了三个可能的处理程序。 INSendMessageIntent :撰写邮件并将其发送给一个或多个其他收件人 INSearchForMessagesIntent :根据查询参数搜索消息 INSetMessageAttributeIntent :请求修改消息。 即标记一条消息为已读。 我只需要对INSendMessageIntent支持,因为您不能搜索消息并将消息标记为已阅读并不是我已经实现的功能。 Siri设置 创建了Intent Extension和Intent UI目标之后,我决定着手定制Siri UI。 虽然可能会为您的扩展程序创建自定义的UI,以替换默认界面,但我需要做一个“简单”的事情……删除“ To:”字段。 不需要它是因为您只有一个重要的其他。 少即是多 。 为此以及其他定制任务的主要工作是: optional func configureView(for parameters: Set, of interaction: INInteraction, interactiveBehavior: INUIInteractiveBehavior, context: INUIHostedViewContext, completion: @escaping (Bool, Set, CGSize) -> Void) 资源 需要实现两点逻辑。 首先,如上所述,删除“收件人:”字段,其次我需要确保内容大小适合消息的宽度和高度。 每个参数都会多次调用configureView…方法。 […]

嘿,Siri,我的下一趟电车是几点?

自WWDC以来已经过去了两个星期,我们中的许多人都在尝试iOS 12的新API。到目前为止,对我来说最有趣的是Siri Shortcuts 。 通过快捷方式,您可以使用新的Siri Intents API将应用程序的主要操作公开给Siri。 在本文中,我将向您展示如何为我的应用《电车时代》实现它。 意图定义文件 输入意图的标题和描述。 您可以在此处决定是否要让用户确认意图(对订单有用)。 定义要在意图中使用的参数 。 在这里,我选择了工作站的自定义模型类型。 这是用户要查看其电车时刻的车站。 如果您有多个参数,则可以定义以下支持的组合。 然后,您可以定义意图的标题和副标题 ; 当Siri建议您使用快捷方式时,这些信息将显示给用户。 如果您的操作可以在后台运行,则需要选中“支持后台执行”选项。 定义了意图之后,您需要在Target成员资格中选择选项,以使Xcode为您生成您的意图类。 现在,您可以在设置的Siri&Search页面中为此快捷方式添加自定义短语。 在iOS12 beta 1中,它似乎对我不起作用; 我必须等待beta 2才能保存快捷方式短语。 用户遵循您的快捷方式后,您将需要在应用程序委托中对其进行处理。 在第一部分中,我向您展示了如何使用新的Siri Intents API。 在下一篇文章中,我将展示如何使用Intent Extensions和Custom Intent Responses来以Siri内联方式响应用户。 在这里查看我的完整实现: 小熊90 / TFGMLive 通过在GitHub上创建一个帐户为TFGMLive开发做出贡献。 github.com 我仍将继续进行整理,并使用Siri表盘进行更多工作。 谢谢阅读! 如果您受到启发,这里有一些有用的链接,可帮助您在遇到困难时提供帮助: Siri快捷方式简介– WWDC 2018 –视频– Apple Developer Siri快捷方式是iOS 12中的一项强大新功能,可让您的应用向Siri公开其功能。 这个… developer.apple.com 通过快捷方式加速应用程序交互 […]

Siri快捷方式示例(iOS12 / Xcode10 beta)

2.在此示例中,打开* .intentdefinition,然后添加New Intent,为其命名,然后设置重要部分是Parameters and Shortcut Types (如果需要用户确认,请检查☑️需要用户确认),在此示例中,我将跳过确认过程。 查看苹果文档以获取更多信息。 参数让我们使用Custom类型。 快捷方式类型的 标题/副标题将显示为Siri结果。 3.不要忘记设置响应, 响应 模板中的模板将再次显示为Siri结果。 4.创建新的目标选择 意图扩展和意图UI扩展。 5.在您的应用程序目标中创建IntentHandler类, NSObject和IntentHandling的子类也在Inspectors中选择Target Intent和IntentUI 。 在“确认”部分中,Soup Chef App尝试显示订单确认视图,当Siri订购Soup Chef App时,也尝试在代码中显示发票,但两者均未显示在Siri屏幕中。 您可以在Siri响应文本中看到[object Object] ,这意味着Response中不支持Decimal 。 Apple可能会很快更新SiriKit和Siri Shortcuts文档,请等待。 源代码 neungnarakjung / CookBook-Siri-快捷方式-示例 CookBook-Siri-Shortcuts-示例– Siri快捷测试版(XCode10 beta) github.com

适用于开发人员的Apple快捷方式深度链接完整入门指南

苹果根据消息,列表和便笺,锻炼,付款,VoIP呼叫,可视代码,照片,乘车预订,汽车命令,CarPlay和餐厅预订等应用程序的类型,为有限的域打开了SiriKit 意图 。 苹果在iOS 12功能中引入了Siri Shortcuts 。 Siri快捷方式是SiriKit限制的突破。 现在,您可以询问或可以训练Siri执行您的工作流程。 我们已经看到了如何创建工作流,也可以从应用程序中创建自定义工作流,但是我们大多数人都不知道我们也可以在快捷方式中进行深层链接。 快捷方式允许我们打开或运行快捷方式,打开图片库以及搜索特定类型的快捷方式。 快捷方式应用程序的URL方案为 shortcuts: // name —快捷方式的名称。 input –输入是要运行的快捷方式的字符串输入。 这些是基本参数,可用于打开或运行任何快捷方式。 让我们看看如何打开或运行任何快捷方式。 打开(不运行)特定的快捷方式 shortcuts://open-shortcut?name=[name] 运行特定的快捷方式 shortcuts://run-shortcut?name=[name]&input=[input] 简单吧? 但是我们怎么知道快捷方式是否成功运行。 苹果也提供了此功能。 x-callback-url url-回调URL负责在放弃快捷方式后发回响应。 shortcuts://x-callback-url/run-shortcut?name=[name]&x-success=[url] 回调网址可使用3个参数: x-success —处理成功的执行 x-cancel —处理执行中的中断 x-error —处理执行中的错误 您可以指定应用程序URL方案以在完成快捷方式执行后打开应用程序 shortcuts://x-callback-url/run-shortcut?name=Make%20PDF&x-success=sampleapp://status=0 注意:URL应该是URL编码的,并且应该将快捷方式添加到库中。 https://www.icloud.com/shortcuts/c5e23f99886c42d7be3883bd5df8a973 这是简单的Bluetooth TurnOn快捷方式文件。 将此添加到快捷应用程序的库中。 下面是运行快捷方式的示例代码,成功后,它将触发“ shortcutDemo:// status = 1” (URL方案:shortcutDemo)。 如果您发现这篇文章有帮助,请推荐给其他人阅读。 跟我来下一篇有趣的文章。 😇 希望您喜欢,祝您开发愉快! 如果您有新想法或建议,请在下面留下评论。 […]

教程:将iOS 12 Siri快捷方式添加到您的应用程序–简单方法

嗨,大家好! 在这个简短的教程中,我们将学习如何通过NSUserActivity添加Siri快捷方式-最简单的方法。 我们将制作一个应用程序和该应用程序的快捷方式,以允许Siri启动该应用程序,并在您说“嘿Siri,更改视图颜色”时将其显示为红色。 首先,使用Single View应用程序模板创建一个新的XCode项目。 然后,您需要在项目设置的“功能”部分中启用Siri。 之后,让我们将数组类型的NSUserActivityTypes字段添加到info.plist文件中。 将一个成员添加到该数组,其字符串值为’(您的捆绑包ID).makeRed’。 项目配置的最后一步是将Intents.framework添加到链接的框架和库中 现在让我们深入了解代码! 打开ViewController.swift文件,并添加一个公共的makeViewRed()函数,该函数会将视图的背景颜色更改为红色。 IBAction实际上正在工作,您现在应该可以在Spotlight搜索中看到此活动,甚至可以使用它创建快捷方式。 要走的路! 剩下的一件事是-在Siri启动时实际上在我们的应用程序中处理该快捷方式。 为此,只需添加应用程序(_:continue:restorationHandler 🙂 到您的AppDelegate.swift,然后从其中调用ViewController上的makeRed()函数。 现在,让我们在Siri&Search iOS设置中为我们的活动创建快捷方式,看看现在可以处理了! 在上面的视频中,您可能会看到该项目的演示。 我不得不将快捷方式短语更改为“更改视图颜色”,因为我不敢让Siri识别“红色”为“红色”而不是“已读” 如您所见,向您的应用程序添加基本的快捷方式功能是一件轻而易举的事,但它还有更多功能,我们一定会在以后的教程中介绍! 您可以在我在github上的repo中找到本教程的完整源代码。 你喜欢吗? 在评论中让我知道! 🙂

当通过SiriKit启动应用程序时,打开一个不同的UIViewController

我正在尝试在我的iOS应用程序中实现SiriKit。 我想通过 Siri启动应用程序时打开一个不同的视图控制器。 我怎样才能在我的应用程序中处理这种types的操作?

Siri – 联系人search行为类似于Skype的audio通话

我正在实施一个VoIP应用程序,我需要通过Siri发起呼叫。 我能够通过Siri发起一个呼叫。 但问题是 – 每次启动应用程序时,虽然联系人不在应用程序的联系人列表中。 我不知道如何以及在哪里处理。 我的意思是不启动应用程序,如果应用程序没有像Skype处理它的联系。 Skype回复如下: 嗯,Skype没有find<user>。 你想打给谁? Bellow是扩展处理程序的代码片段: – (id)handlerForIntent:(INIntent *)intent { // This is the default implementation. If you want different objects to handle different intents, // you can override this and return the handler you want for that particular intent. return self; } #pragma mark – INStartAudioCallIntentHandling – (void)resolveContactsForStartAudioCall:(INStartAudioCallIntent *)intent […]

从SiriKit的INExtension启动应用程序

我想用SiriKit开始锻炼。 开始锻炼需要从应用程序扩展中打开主应用程序。 Apple为INStartWorkoutIntentHandling处理程序提供的样板INStartWorkoutIntentHandling是 func handle(startWorkout startWorkoutIntent: INStartWorkoutIntent, completion: (INStartWorkoutIntentResponse) -> Void) { let userActivity = NSUserActivity(activityType: NSStringFromClass(INStartWorkoutIntent)) let response = INStartWorkoutIntentResponse(code: .success, userActivity: userActivity) completion(response) } 我怎样才能从这里打开我自己的应用程序? 就像myapp://workout?action=start&name=pushups 这个答案似乎并不相关,因为我没有这个扩展types的extensionContext属性的UIViewController 。 最后一个相关位:对于其他操作(暂停,结束)我宁愿不打开主应用程序,而只是暂停在主应用程序中运行的锻炼。 我可以使用类似的自定义url暂停它,但这会打开应用程序,这是一个额外的不必要的步骤。 任何好的方式来告诉主要的应用程序从INExtension采取特定的行动,而无需打开应用程序?

Siri不在现有项目中工作

我必须通过我的应用程序使用Siri发起voip电话。 它在演示项目中工作,但是当我将Intents Extension添加到现有项目中时,Siri不再工作。 在系统设置中,我的应用程序未显示在应用程序支持部分。 Plistconfiguration如下所示: 另请参阅扩展程序的plistconfiguration: 每当我提供任何语音命令时,都会说“我希望我可以,但是<app>还没有和我联系。 我也尝试通过使能Siri。 让我知道我在那里做错了什么。 谢谢。

我们可以使用Sirikit进行语音识别吗?

我在我的应用程序中使用Nuance Dragon SDK实现了语音到文本的转换。 我也尝试过开放式耳朵,但无法正常工作。 一旦转换完成,我使用该文本作为命令在我的应用程序中触发动作。 我想知道如果使用Sirikit,我们可以在应用程序内部完成。 在检查WWDC16 Sirikit简介时,我无法理解它。 可能是我对意图的解释还不清楚,但据我所知,在应用程序内部没有任何定制的意图触发一些行动。 另外sirikit可用于目标C以及Swift?