问题标签 [sirishortcuts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
719 浏览

ios - Siri 支持:INPlayMediaIntent 支持哪些意图参数?

我创建了一个 iOS 应用扩展,并在扩展的 plist IntentsSupported 数组中定义了一个条目 INPlayMediaIntent。一切都很好。但是几天后(WWDC 2019)我无法将应用程序提交到 TestFlight/App Store Connect。

我按照 Apple 的说明修复了这些错误:

现在我试图在 AppIntentVocabulary.plist 中提供一个意图参数:

根据这些 App Store 电子邮件,我尝试了各种字符串,但都错了:

  • ITMS-90626:无效的 Siri 支持 - “INPlayMediaIntent.mediaItems”不是订阅意图的受支持的意图参数

  • ITMS-90626:无效的 Siri 支持 - “INPlayMediaIntent.mediaContainer”不是订阅意图的受支持的意图参数

  • ITMS-90626:无效的 Siri 支持 - “INPlayMediaIntent.identifier”不是订阅意图的受支持的意图参数

INPlayMediaIntent的有效参数名称是什么

这可能很容易,因为 Apple 在这里有一个 INPlayMediaIntent 示例项目,我曾经为我的项目学习过:

https://developer.apple.com/documentation/sirikit/media/playing_media_through_siri_shortcuts

但是:这个项目似乎不是最新的,因为它缺少最近似乎需要的 AppIntentVocabulary.plist。

0 投票
1 回答
537 浏览

ios - 使用 NSUserActivity 时如何将值返回给 Siri Shortcut?

我正在使用 NSUserActivity 定义一个应用程序功能,因此它出现在 Spotlight 和 Siri Shortcuts 中:

这部分工作正常,调用上述函数后,测试功能按钮出现在 Spotlight 和 Shortcuts 中。如果我从这个意图启动应用程序,我可以在我的 AppDelegate 中收听它:

两个问题:

  1. 如果应用程序是从使用 Shortcuts 应用程序创建的快捷方式启动的,是否可以将值返回给快捷方式?例如,我会返回一些文本,我在快捷方式中的下一步将发送一条带有该文本的短信。
  2. 如果我有多个 NSUserActivity,我如何在我的 AppDelegate restoreHandler 中区分它们?
0 投票
1 回答
192 浏览

sirikit - iOS SiriKit:在 Intent 的“resolve”和“handle”方法之间传递数据

我正在尝试带有可自定义参数的新 iOS13 SiriKit Intents。它工作正常......我有多个参数,并且为每个参数调用'resolve'方法,然后是'confirm',然后是预期的'handle'。但是我在这些多个调用之间保持和传递“状态”时遇到了麻烦。当第一个参数被解析时,我想存储一些关于解析的额外信息,所以它可以在'handle'中使用。我打算使用 IntentsHandler 对象来保持这种状态,但显然每个“resolve”调用都会实例化一个新的 IntentsHandler 对象,所以这不起作用。

我们可以通过什么其他方式在“解决”和“确认”/“处理”方法之间传递“状态”,这在一个 Siri“事务”正在进行时是相关的?

0 投票
0 回答
85 浏览

ios - 清除 Siri 快捷方式并不能完全奏效

在我的应用程序中,我有一些需要删除和重新创建的快捷方式,因为它们与可能更改的 ID 相关联。

我打电话给:

INVoiceShortcutCenter.shared.setShortcutSuggestions([])

但即使调用这个,我发现我以前的快捷方式始终在 Apple Shortcuts 应用程序和 Siri & Search 部分下的用户设置中可用。

这听起来更像是一个错误,我将填补一个雷达,但我想听听你对此的看法。是否应该在使用 empy 数组调用 setShortcutSuggestions 后从 Shortcuts 应用程序和 Siri & Search 中删除快捷方式?这是预期的行为吗?

0 投票
1 回答
289 浏览

ios - INVoiceShortcutCenter.shared.setShortcutSuggestions(suggestions) 在 iOS 13 Beta 中崩溃。Xcode 11 测试版

我的代码非常简单。我不确定是什么问题,我无法找到解决方案。

该应用程序在setShortcutSuggestions.

它在具有相同 Xcode 11 Beta 的 iOS 12 中运行良好。

0 投票
0 回答
580 浏览

ios - INVoiceShortcutCenter.shared.getAllVoiceShortcuts 在 iOS 13 中不返回任何内容

我不确定我做错了什么。但是在这个方法中

vShortCuts 是一个空数组。

我捐赠了一个建议打开“快捷方式应用程序”。导航到图库并通过文本向 Siri 添加了建议。

但是,相同的文本不会触发appdelegate's willContinueUserActivity

并且还INVoiceShortcutCenter.shared.getAllVoiceShortcuts返回一个空数组。

任何帮助appriciated。

0 投票
1 回答
86 浏览

regex - 如何替换六个字符的倍数后的序列?

我想替换一个字符串,只有当它出现在正则表达式的六个数字的倍数之后,才对字母 L 说“000000”。我在 iOS 上使用 Siri Shortcuts,我的项目是一个管理二进制字符串的系统。我目前的方法是将基本字符串拆分为 6 字节的块,然后运行我的正则表达式,但这并不高效,并且它会因更大的字符串而崩溃。

例如:

我尝试过诸如(?=(\d{6})*)000000, 以及替换*+, 更改组, 写\d六次而不是\d{6}其他几件事的符号,但我不知道如何将其强制为六的倍数。通常,我会得到如下输出:

有没有办法确保我要替换的字符串后面有六个数字的倍数(不是字符)?或者,有没有办法在每六个字符之后放置一个字符(例如空格)而不删除字符?Siri Shortcuts 使用 ICU 风格的正则表达式。

0 投票
1 回答
630 浏览

ios - 如何检查我的应用程序是否通过 Siri 快捷方式恢复

我正在使用Siri 快捷方式。我想知道在以下情况下我的应用程序是否从 Siri 快捷方式启动:

  1. 当应用程序在后台运行时
  2. 当应用程序不在后台运行时

对于案例 2,我可以使用“ didFinishLaunchingWithOptions ”方法,但对于案例 1,我不确定使用什么方法。

我将不胜感激有关此主题的任何建议和想法。谢谢你。

0 投票
1 回答
223 浏览

ios13 - Siri Shortcuts 的 Intent Extension 在 Sample App 中有效,不在现有项目中

我正在尝试在我现有的 Obj-C 项目中使用 Intents Extension 来实现 iOS 13 中的会话快捷方式。我已按照所有步骤操作,并且这些程序在示例应用程序中运行良好。

但是当我在现有应用程序中尝试时,意图无法启动,它会自动重定向到我的父应用程序。

控制台报错如下

有没有人遇到过这样的意图问题?请分享您对此的看法。

附加信息:意图已注册。已经实现了 'handle' 'resolve' 方法并且还在接口中声明了它们。

让扩展的最小部署目标与父级相同(这造成了我之前错过的问题)。

0 投票
0 回答
6 浏览

sirishortcuts - 查找笔记问题

我正在创建一个作为共享扩展运行的快捷方式。我想将结果附加到笔记(Apple Notes)。

如果注释不存在,我想创建它。我的策略是根据名称和创建日期(今天)查找注释。

我有一个 Find Note 步骤,它在共享扩展中执行时永远不会找到注释,但在从 Shortcuts 应用程序中作为独立执行时工作正常。

我可能做错了什么?在我看来,查找笔记功能的工作方式似乎不会因快捷方式的启动方式而异。