魔法变量对老手和新手都有一定的意义。对于老手来说,它的目的是减少使用 Set VariableGet Details of xxx 这两组动作的使用;对于那些对变量这个概念还不熟悉的 Workflow 新手来说,魔法变量也降低了变量的存在感,使 Workflow 更容易上手。

《Workflow 教程(四):如何使用 Workflow 中关于文章的那些动作》里我举了一个在 Safari 里做文摘的例子,它的最终效果是要做到:

有出处,点标题要看到原文,引用文本有层级显示,最后有摘抄日期。

魔法变量如何省略 Set Variable

这个本来就简单的入门动作,通过 1.7 新增的魔法变量,能做到在操作中不设一个变量来完成整个动作


下载该 Workflow

为什么可以做到这点?因为在 1.7 版后,当你在需要加入变量的地方,选择魔法变量,你会发现 Workflow 里的每一个可获取结果的 Action 下面都有一个可选择的按钮,选择该按钮,就会在之前选择要填入变量的地方生成变量:

魔法变量如何省略 Get Details of xxx

魔法变量的功能还不限于此。当你把魔法变量加入要填的地方之后,再次轻触该魔法变量,会给你弹出一个菜单,让你选择该变量的具体类型。Workflow 老手们肯定会意识到,这个功能直接顶了一系列 Get Details of xxx(获取 xxx 细节) 的动作。这就是为什么之前的动作可以缩得那么短的原因,一个魔法变量直接省掉了三步:Set Variable + Get Details of Articles + 另一个 Set Variable

具体操作

接下就着 Excerpt Safari 这个动作来说一下具体操作。

首先你还是要把动作的类型设为 Action Extension。然后我们接下来就直接放 Text(文本框)!再下一步就是直接往文本框里填魔法变量了:

魔法变量添加完后,可以轻触之,再弹出菜单里选择它代表的细节。比如 Articles 这个类型,有 BodyTitle 等具体内容:

魔法变量小结

除了文首提到的两个意义以外,魔法变量还有个意义是使整个 Workflow 更加可读。不少人写 Workflow,变量胡乱设。变量名都是一个小写字母,这个你发给别人,就会导致一定的阅读障碍。本来看最后一步就能懂的 Workflow,非得从头到尾死抠每一步才能看明白。这种习惯自己用还没什么问题,但有时候有的人拿一个死长的 Workflow 问我哪做得不对,变量都是 abcd,我是一点看得心思都没有。

当然魔法变量也并不是万能的,在一些复杂的情况下,我们仍然需要 Set Variable。比如我们下面要提到一个 Workflow 的类型是 Share Extenstion,接受类型比较多有文件有图片,这时候还是需要我们来告诉 Workflow 希望处理的是接受到的图片还是文件。

工具栏的重新设计

除了新增了魔法变量,这次另一个更新的重头戏是工具栏(Toolbar)的重新设计:

现在在工具栏,选择最左边的 Variables 按钮,会弹出一个含有本 Workflow 里已设变量以及 Workflow 常用变量的菜单。如上图所示,在已设变量的部分,也会显示当前你可以选择的魔法变量。

添加当前日期变量

在 Workflow 常用变量的部分,你会看到出现了一个新的变量——Current Date(当前日期),它解决插入日期难的顽疾。之前插入一个当前日期,要干什么呢?

要放一个 Date,再接一个 Format Date,再接 Set Variable,要拖三个 Action,而且最后你还得在要显示日期的地方填上这个日期变量。而现在,完全不用了,按一下 Current Date,然后在里面选日期格式即可。

如果你要选择格式,和魔法变量一样,点一下已经填写过的 Current Date 这个变量即可:

修复照片应用中视频大小显示不准的问题

市面上有不少查看图片信息的应用,有收费的有免费的。但是其实用 Workflow 就能解决大部分需求,而且对文件格式的处理也会更灵活。比如我的需求是这样:如果是文件,就告诉我格式和大小;如果是图片,告诉我格式、大小还有宽和高(当然 Workflow 可以做得更多,比如拍摄日期、拍摄地点、机型等)。于是我做了个 Workflow 实现这个功能。

这个 Workflow 一直工作得不错,但总是对 Photos.app 里的视频大小的判断出问题。现在 1.7 修复了终于修复了这个问题。

其它比较值得一提的更新与修复

  • 已分享的 Workflow 支持 Universal links(点 Workflow 链接会跳转到 Workflow)
  • 提升了拓展(Share Sheet 和 Today Widget 里的动作)的运行速度
  • Uber 支持预估价格(本人未试验)
  • 为 Gallery 搜索提供了 URL scheme :workflow://gallery/search?query=关键字
  • Get Contents of URL 现在支持 DELETE requests 了
  • Choose from List 这个动作里的 Select All Initially(默认全选)选项支持图片(这个你们要试一试,很实用)
  • 修复了一些被修改过的照片不被视为图片媒体的问题
  • 修复了 Log Health Samples 偶尔会不导出任何结果的问题