快捷指令的文件结构
快捷指令从 iOS 快捷指令应用程序导出,.shortcut
在 iOS 14 及更高版本中使用.shortcuts
扩展程序,或在 iOS 13 中使用扩展程序。从工作流应用程序导出的工作流使用.wflow
扩展程序。
快捷指令和工作流文件的格式大部分相同——从 Workflow 应用程序到 Apple 的 iOS 快捷指令应用程序,文件格式似乎没有改变。许多键和值仍然带有前缀WFWorkflow
。
在 iOS 15 之前,该文件采用二进制属性列表格式。可以通过将文件传输到 Mac 并将文件扩展名更改为 来查看其内容,.plist
然后可以在 Xcode 或其他支持的应用程序中查看。
从 iOS 15 开始,这些文件现在已被签名,因此无法轻松打开和解析它们。从这一点开始的信息描述了签名前最后已知的文件格式。
WFWorkflowClientVersion
:代表用于创建工作流的客户端应用程序版本的数字(例如 700)。WFWorkflowClientRelease
:表示用于创建工作流的客户端应用程序的发布语义版本的字符串(例如“1.7.8”或“2.0.0”)。似乎不再出现在最近的 iOS 14 版本中。WFWorkflowMinimumClientVersion
:一个可选的整数,表示运行工作流所需的最低客户端应用程序版本(例如 411)WFWorkflowMinimumClientVersionString
:可选的字符串表示形式WFWorkflowMinimumClientVersion
WFWorkflowName
:工作流的可选字符串名称。如果不存在,将使用导入的工作流程的文件名- WFWorkflowImportQuestions:导入快捷指令时询问用户的一系列问题字典,每个包含:
ActionIndex
:一个整数,表示快捷指令中操作的索引(WFWorkflowActions
数组索引)Category
: 一个字符串,通常Parameter
DefaultValue
:如果用户未提供值,则使用的字符串或布尔值ParameterKey
: 在给定的动作字典中用用户的答案填充的字典键Text
:为了填充操作的参数值而呈现给用户的问题/提示
- WFWorkflowIcon: 字典包含:
WFWorkflowIconStartColor
:代表快捷指令图标颜色的数字,见下文。WFWorkflowIconImageData
: 数据WFWorkflowIconGlyphNumber
: 一个号码
- WFWorkflowInputContentItemClasses: 字符串数组,代表接受的输入内容类型
WFAppStoreAppContentItem
WFArticleContentItem
WFContactContentItem
WFDateContentItem
WFEmailAddressContentItem
WFGenericFileContentItem
WFImageContentItem
WFiTunesProductContentItem
WFLocationContentItem
WFDCMapsLinkContentItem
WFAVAssetContentItem
WFPDFContentItem
WFPhoneNumberContentItem
WFRichTextContentItem
WFSafariWebPageContentItem
WFStringContentItem
WFURLContentItem
- WFWorkflowTypes: 一个字符串数组,代表工作流的可用使用类型,一个或多个
MenuBar
:“保留在菜单栏中”(macOS Monterey / iOS 15)QuickActions
:“用作快速操作”(macOS Monterey / iOS 15)ActionExtension
: “在分享表中显示”NCWidget
: “在[通知中心]小部件中显示”Sleep
:“在睡眠模式下显示”(iOS 14)WatchKit
:表示 Apple Watch 在某些 iOS 14 版本、某些 iOS 12 测试版和旧的 Workflow 应用程序中可用。在 iOS 13 中不受支持,尽管所有新的快捷指令都默认包含此字符串。Watch
:“在 Apple Watch 上显示”——表示 Apple Watch 在最近的 iOS 14 版本(及更新版本)中的可用性,似乎取代了WatchKit
.
- WFWorkflowActions:动作数组,每个动作的格式为:
WFWorkflowActionIdentifier
:一个动作标识符字符串,以反向域名表示法格式化,例如is.workflow.actions.address
WFWorkflowActionParameters
: 参数数组 [String | 编号 | Dictionary], 每一个标识符和一个值
快捷指令图标使用的颜色
快捷指令图标的颜色存储为 RGBA-8 数字。例如,转换存储值会显示格式中4282601983
的 8 位十六进制颜色。FF4351FF``RRGGBBAA
当在 Mac 上编辑的快捷指令在 iOS 上打开时,快捷指令似乎不支持自定义图标颜色——颜色将默认为灰色。
在 iOS 12 上,此颜色用作图标渐变的起始颜色。在 iOS 13 和 14 上,整个快捷指令图标现在以这种颜色绘制。
快捷指令中可用的颜色及其各自的值(可能会更改):
- 红色:
0xFF4351FF
/4282601983
- 深橙色:
0xFD6631FF
/4251333119
- 橙色:
0xFE9949FF
/4271458815
- 黄色:
0xFEC418FF
/4274264319
- 绿色:
0xFFD426FF
/4292093695
- 蓝绿色:
0x19BD03FF
/431817727
- 浅蓝色:
0x55DAE1FF
/1440408063
- 蓝色:
0x1B9AF7FF
/463140863
- 深蓝色:
0x3871DEFF
/946986751
- 紫色:
0x7B72E9FF
/2071128575
- 紫色:
0xDB49D8FF
/3679049983
- 深灰色:
0x000000FF
/255
- 粉色:
0xED4694FF
/3980825855
- 灰褐色:
0xB4B2A9FF
/3031607807
- 灰色:
0xA9A9A9FF
/2846468607
导入大于客户端版本的快捷指令
在快捷指令中,导入WFWorkflowMinimumClientVersion
大于客户端版本的文件将导致警告对话框,如下所示。导入的文件可以复制或删除,但不能编辑或执行。
快捷指令格式太新
无法打开此快捷指令,因为它是在较新版本的“快捷指令”应用程序上创建的。
更新快捷指令 [打开 App Store] | 好的
快捷指令的URL Scheme
大多数快捷指令URL Scheme与工作流相同,并且可以通过将“快捷指令”替换为“工作流”来互换使用,反之亦然。
有关更多信息,请参阅Apple 快捷指令用户指南中高级快捷指令下的“使用 URL 方案”部分。
- 从 URL 导入快捷指令:
shortcuts://import-shortcut/?url=[url]&name=[name]
- 参数:
- url: 文件下载地址
- 名称(可选):快捷指令的名称,默认为快捷指令文件名
- silent (optional):
true
在不打开快捷指令的情况下导入,false
默认打开并向用户显示快捷指令
- 例子:
shortcuts://import-shortcut/?name=Awesome%20Shortcut&url=https%3A%2F%2Fdownloadwebsite.com
- 参数:
- 运行快捷指令:
shortcuts://run-shortcut
- 查询参数:
- 名称:快捷指令的字符串名称
- input(可选):初始输入快捷指令,文本字符串或单词
clipboard
以使用剪贴板的内容
- 例子:
shortcuts://run-shortcut/?name=Shortcut%20to%20Run
- 笔记:
- 添加到主屏幕的快捷指令倾向于使用带有额外参数的 URL
id
(快捷指令的内部 UUID)和source
,它总是homescreen
.
- 添加到主屏幕的快捷指令倾向于使用带有额外参数的 URL
- 查询参数:
- 打开快捷指令:
shortcuts://
将应用程序启动到上次使用的状态shortcuts://create-shortcut
创建一个新的快捷指令shortcuts://open-shortcut?name=[name]
将应用程序打开到给定名称的快捷指令
其他记录
- 上一个 Workflow 版本是 1.7.8
- 第一个快捷指令版本号是 2.0.0(iOS 12)
- 捷径 3.0.0 随 iOS 13 一同发布
- 最近的 iOS 14 版本现在报告格式为 10xx.x.xx 的版本
来源:https://github.com/sebj/iOS-Shortcuts-Reference