问题标签 [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.
ios - Siri 支持:INPlayMediaIntent 支持哪些意图参数?
我创建了一个 iOS 应用扩展,并在扩展的 plist IntentsSupported 数组中定义了一个条目 INPlayMediaIntent。一切都很好。但是几天后(WWDC 2019)我无法将应用程序提交到 TestFlight/App Store Connect。
我按照 Apple 的说明修复了这些错误:
- ITMS-90626:无效的 Siri 支持 - 没有为 ... 语言中的 INPlayMediaIntent 提供示例短语。请参考“ https://developer.apple.com/documentation/sirikit/registering_custom_vocabulary_with_sirikit/global_vocabulary_reference/intent_phrases ”
- ITMS-90626:无效的 Siri 支持 - 没有为捆绑包指定意图参数……语言……词汇策略 #1
现在我试图在 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。
ios - 使用 NSUserActivity 时如何将值返回给 Siri Shortcut?
我正在使用 NSUserActivity 定义一个应用程序功能,因此它出现在 Spotlight 和 Siri Shortcuts 中:
这部分工作正常,调用上述函数后,测试功能按钮出现在 Spotlight 和 Shortcuts 中。如果我从这个意图启动应用程序,我可以在我的 AppDelegate 中收听它:
两个问题:
- 如果应用程序是从使用 Shortcuts 应用程序创建的快捷方式启动的,是否可以将值返回给快捷方式?例如,我会返回一些文本,我在快捷方式中的下一步将发送一条带有该文本的短信。
- 如果我有多个 NSUserActivity,我如何在我的 AppDelegate restoreHandler 中区分它们?
sirikit - iOS SiriKit:在 Intent 的“resolve”和“handle”方法之间传递数据
我正在尝试带有可自定义参数的新 iOS13 SiriKit Intents。它工作正常......我有多个参数,并且为每个参数调用'resolve'方法,然后是'confirm',然后是预期的'handle'。但是我在这些多个调用之间保持和传递“状态”时遇到了麻烦。当第一个参数被解析时,我想存储一些关于解析的额外信息,所以它可以在'handle'中使用。我打算使用 IntentsHandler 对象来保持这种状态,但显然每个“resolve”调用都会实例化一个新的 IntentsHandler 对象,所以这不起作用。
我们可以通过什么其他方式在“解决”和“确认”/“处理”方法之间传递“状态”,这在一个 Siri“事务”正在进行时是相关的?
ios - 清除 Siri 快捷方式并不能完全奏效
在我的应用程序中,我有一些需要删除和重新创建的快捷方式,因为它们与可能更改的 ID 相关联。
我打电话给:
INVoiceShortcutCenter.shared.setShortcutSuggestions([])
但即使调用这个,我发现我以前的快捷方式始终在 Apple Shortcuts 应用程序和 Siri & Search 部分下的用户设置中可用。
这听起来更像是一个错误,我将填补一个雷达,但我想听听你对此的看法。是否应该在使用 empy 数组调用 setShortcutSuggestions 后从 Shortcuts 应用程序和 Siri & Search 中删除快捷方式?这是预期的行为吗?
ios - INVoiceShortcutCenter.shared.setShortcutSuggestions(suggestions) 在 iOS 13 Beta 中崩溃。Xcode 11 测试版
我的代码非常简单。我不确定是什么问题,我无法找到解决方案。
该应用程序在setShortcutSuggestions
.
它在具有相同 Xcode 11 Beta 的 iOS 12 中运行良好。
ios - INVoiceShortcutCenter.shared.getAllVoiceShortcuts 在 iOS 13 中不返回任何内容
我不确定我做错了什么。但是在这个方法中
vShortCuts 是一个空数组。
我捐赠了一个建议打开“快捷方式应用程序”。导航到图库并通过文本向 Siri 添加了建议。
但是,相同的文本不会触发appdelegate's
willContinueUserActivity
并且还INVoiceShortcutCenter.shared.getAllVoiceShortcuts
返回一个空数组。
任何帮助appriciated。
regex - 如何替换六个字符的倍数后的序列?
我想替换一个字符串,只有当它出现在正则表达式的六个数字的倍数之后,才对字母 L 说“000000”。我在 iOS 上使用 Siri Shortcuts,我的项目是一个管理二进制字符串的系统。我目前的方法是将基本字符串拆分为 6 字节的块,然后运行我的正则表达式,但这并不高效,并且它会因更大的字符串而崩溃。
例如:
我尝试过诸如(?=(\d{6})*)000000
, 以及替换*
为+
, 更改组, 写\d
六次而不是\d{6}
其他几件事的符号,但我不知道如何将其强制为六的倍数。通常,我会得到如下输出:
有没有办法确保我要替换的字符串后面有六个数字的倍数(不是字符)?或者,有没有办法在每六个字符之后放置一个字符(例如空格)而不删除字符?Siri Shortcuts 使用 ICU 风格的正则表达式。
ios - 如何检查我的应用程序是否通过 Siri 快捷方式恢复
我正在使用Siri 快捷方式。我想知道在以下情况下我的应用程序是否从 Siri 快捷方式启动:
- 当应用程序在后台运行时
- 当应用程序不在后台运行时
对于案例 2,我可以使用“ didFinishLaunchingWithOptions ”方法,但对于案例 1,我不确定使用什么方法。
我将不胜感激有关此主题的任何建议和想法。谢谢你。
ios13 - Siri Shortcuts 的 Intent Extension 在 Sample App 中有效,不在现有项目中
我正在尝试在我现有的 Obj-C 项目中使用 Intents Extension 来实现 iOS 13 中的会话快捷方式。我已按照所有步骤操作,并且这些程序在示例应用程序中运行良好。
但是当我在现有应用程序中尝试时,意图无法启动,它会自动重定向到我的父应用程序。
控制台报错如下
有没有人遇到过这样的意图问题?请分享您对此的看法。
附加信息:意图已注册。已经实现了 'handle' 'resolve' 方法并且还在接口中声明了它们。
让扩展的最小部署目标与父级相同(这造成了我之前错过的问题)。
sirishortcuts - 查找笔记问题
我正在创建一个作为共享扩展运行的快捷方式。我想将结果附加到笔记(Apple Notes)。
如果注释不存在,我想创建它。我的策略是根据名称和创建日期(今天)查找注释。
我有一个 Find Note 步骤,它在共享扩展中执行时永远不会找到注释,但在从 Shortcuts 应用程序中作为独立执行时工作正常。
我可能做错了什么?在我看来,查找笔记功能的工作方式似乎不会因快捷方式的启动方式而异。