把重复的操作交给 Workflow(2)——创建简单的 Workflow

把重复的操作交给 Workflow(2)——创建简单的 Workflow_第1张图片

这是「流程和效率」系列之二

本文结构

  • 创建第一个 Workflow
    • #1 定个小目标
    • #2 确定核心步骤
    • #3 用「Choose from Menu」显示选单
    • #4 用「List」显示选单
  • Workflow 进阶
    • #1 聚合搜索引擎
    • #2 货币换算

创建第一个 Workflow

#1 定个小目标

要从简单、已有经验的任务做起,那就还选支付宝快速跳转。我们已经了解支付宝的 URL Schemes:

  • 启动支付宝并立即跳到「扫码」;
  • 启动支付宝并立即跳到「余额宝」;
  • 启动支付宝并立即跳到「付款码」;
  • 启动支付宝并立即跳到「收款」。

#2 确定核心步骤

新建一个 Workflow,把名称、图标和类型设置好,然后整理思路,准备添加动作。

要跳转到不同功能,URL 的区别就是末尾的那串数字。所以 Workflow 的核心步骤就是建立一个选单,运行时根据选择将不同的数字填到 URL 中去。

LCP 可以用「List」来显示选单,我们回顾一下它的代码:

[list:常用功能|扫码=10000007|余额宝=20000032|付款码=20000056|收款=20000123]

把重复的操作交给 Workflow(2)——创建简单的 Workflow_第2张图片
支付宝常用功能

翻看 Workflow App 的动作列表,可以看到在 Scripting 分类下有「Menu」「List」两个词跟选单相关,具体动作如下:

  • Choose from Menu
  • List
  • Choose from List
  • Choose Item from List

#3 用「Choose from Menu」显示选单

先试试「Choose from Menu」,把它拖放到 Workflow 里,然后添加上述菜单项:

把重复的操作交给 Workflow(2)——创建简单的 Workflow_第3张图片
用 Menu 实现

你会发现每添加一个菜单项,下面就会自动出现对应的分支。这时可以再继续把动作拖到不同的分支里。

显然,用「Choose from Menu」可以实现我们的「小目标」,但它显得繁琐,每个分支下都是重复的动作,需要我们反复往里面拖。

#4 用「List」显示选单

用「List」相关动作会不会更简单一些呢?把「List」拖进去,发现下方并没有像「Choose from Menu」那样出现分支。

而「Choose from List」和「Choose Item from List」的区别又是什么呢?

Workflow 提供了「View Content Graph」和「Quick Look」两个动作,为我们测试提供了方便。「View Content Graph」直译过来是「查看内容图表」,「Quick Look」是「瞥一眼」。

我们可以临时建一个 Workflow,选一个联系人看看它们展示什么:

把重复的操作交给 Workflow(2)——创建简单的 Workflow_第4张图片
View Content Graph
把重复的操作交给 Workflow(2)——创建简单的 Workflow_第5张图片
联系人数据结构

原来「View Content Graph」用于观察数据类型的结构,即一种数据里包含着哪些类型的数据,而「Quick Look」则会简单地展现数据。

删掉临时 Workflow,分别试着把「Quick Look」添加到「Choose from List」和「Choose Item from List」之后,看看是什么运行效果?

把重复的操作交给 Workflow(2)——创建简单的 Workflow_第6张图片
查看「Choose Item from List」的运行效果

通过试验得出两个结论:

  • List 后跟 Choose from List 会显示选单,后跟 Choose Item from List 则不会;Choose Item from List 多数用于不需干预的固定选择。
  • List 向后传递选项内容,Choose from List 支持多选。

不像「Menu」的菜单项仅供显示,在「List」中选择的项目是后面用到的数据。因此力求简洁的话,支付宝的快速功能选单应该用 URL 结尾那串数字:

把重复的操作交给 Workflow(2)——创建简单的 Workflow_第7张图片
用数字做选单

只是这样的话,用的时候谁记得这串数字代表什么鬼?

LCP 用扫码=10000007 的形式,等号前的内容用来显示选单,等号后的内容用来加入 URL,在 Workflow App 里类似的动作应该是「Dictionary」。因此,这个 Workflow 最简洁的做法是:

把重复的操作交给 Workflow(2)——创建简单的 Workflow_第8张图片
Quick Alipay

Workflow 进阶

Workflow 是一种用流程来解决问题的思维模式。在成功创作第一个作品之后,相信你对此已有初步体会。

不过,支付宝的这个 Workflow 只是 URL 调用,它并未体现出和 LCP 的根本区别。所以在进阶部分,我们通过「分享面板扩展」类 Workflow 和 Scripting 类动作弄清楚这种区别。

#1 聚合搜索引擎

在本文第一部分我贴过搜索聚合功能的截图,其关键步骤和上面支付宝的 Workflow 完全一致,现在就从它开始。

  • 确定核心步骤

    我们试着用不同的搜索引擎来搜索关键词,最终得知它们的 URL 格式如下:

    • Bing(必应)https://cn.bing.com/search?q=关键词
    • Google(谷歌)https://www.google.com/search?q=关键词
    • 百度(bǎi dù)https://www.baidu.com/s?wd=关键词

    借此我们可以先把 Workflow 的核心动作先添加好。这里重贴前文截图供参考:

    把重复的操作交给 Workflow(2)——创建简单的 Workflow_第9张图片
    搜索引擎聚合

    你可能会留意到,我没有打开「Choose from List」中的「Select Multiple(多选)」开关,而是在「Dictionary」中添加了一个子级词典,因为打开多选开关之后,每次运行 Workflow 都要勾选引擎再点确定,操作上多了一个步骤。

  • 添加条件判断

    一个聚合搜索引擎的 Workflow 必须接受数据输入(要搜索的内容),而不像调用支付宝那样,只需预设 URL 的不同分支。

    它最好是「分享面板扩展」类 Workflow,那样我们就可以在大部分 App 里选中文字即时调用,同时还可以在通知中心运行,让用户手动输入要搜索的内容。

    将 Workflow 的类型选为「分享面板扩展」和「通知中心插件」,接受的数据类型只选择「Text」。

    在选择类型之后,类型选项会在 Workflow 的编辑界面消失,要再次修改,需要点齿轮图标进入设置界面。

    如上所述,Workflow 需要判断是否有通过分享面板传递的数据,这时就需要用到「Count」和「If」两个动作。

    点「Count」动作的图标查看其说明,可知它用于统计项目、字符、单词、句子、段落的数量,我们可以用它和「If」组合,判断运行时是否选择了内容。

    因为「Count」动作向后传递的是数值,而不再是“可能存在”的文字内容,所以在运行它之前,要先用「Set Variable」动作把“可能存在”的文字内容赋值给一个变量。

    我们用「Count」统计输入的项目,项目数量为 0 时表示没有数据输入(在分享面板中调用时并未选择文字,或者是在通知中心运行),这时要求输入搜索关键词。

    这一段 Workflow 见下图:

    把重复的操作交给 Workflow(2)——创建简单的 Workflow_第10张图片
    判断是否选择了文字内容

    用「Ask for Input」提示输入的时候,建议将剪贴板的内容设为默认答案,这样就可以应对某些 App 不兼容分享面板的情况。遇到这样的 App 你只需多做一步:在选中文字之后点一下「复制」。

    经过 If 的判断,Workflow 确定无疑获得了要搜索的内容,接上先前构建的核心步骤,Workflow 就算基本完成了。

  • 查漏补缺

    在认为 Workflow 已经完成之后最好继续做一遍检查,看看是否有错误、逻辑漏洞等等。比如上面的 Workflow 就还有有两个问题需要留意:

    注意对网址进行编码。有些符号是网址格式的保留符号(比如/),如果我们选中、复制或手动输入的文字中含有这样的符号,就会导致搜索结果出乎意料。为了防止这种意外,最好在「Set Variable」之前先使用「URL Encode」动作。

    检查「Dictionary」 的项目。在将搜索引擎及网址添加进词典的时候,URL 的等号后面要接上前面赋值的变量,否则又是「Count」又是「If」的闹了半天,Workflow 总是只打开搜索引擎,而不搜索任何内容。

#2 货币换算

在创建第一个 Workflow 的环节,你一不小心就完成了一个小目标,于是变得极端有钱,海淘的需求极大,这时候你少不了要装一个货币换算 App。

在商店众多优秀的货币换算 App 中我推荐 Vert,它除了支持货币换算,还支持长度、面积、体积、重量、温度、速度……(类别多得让人头皮发麻)的单位转换。如此全面的单位换算工具,不光能给人海淘的快感,还能给人辅导孩子功课的底气。

上帝是公正的,如果一个人的发球姿势过于优美,他老人家就往往不让球过网。Vert 也逃不脱这个规律:它强大,于是操作上就略显繁琐。

作者也知道这十分影响海淘心流,为了将功赎罪,他交出了 URL Schemes:

vertconverter://open?category=currency&from=cny&to=usd&value=数值

我们同样可以借助这个 URL Schemes 做一个 Workflow,以便在浏览器或其他购物 App 中调用。

这个 Workflow 的步骤与上面聚合搜索的几乎一致,不过 URL 中有多个参数,分别引申出不同的步骤:

  • Category

    做货币换算,类别固定用 currency 即可,不需要运行时选择,但这里暗藏一个小问题。

    Vert 是多国语言版,支持在设置中更换界面语言。也许是由于 Vert 的语言文件翻译过度,导致它切换到不同语言界面之后,currency 也要相应改变。在使用 Vert 的中文界面时,「category」后面应填货币

  • Currency Unit

    fromto 的值都是货币缩写,我们可以使用同一个词典。

    把重复的操作交给 Workflow(2)——创建简单的 Workflow_第11张图片
    货币缩写词典
  • Value

    和上面的搜索关键词一样,value 的数值通过选取、复制或手动输入获得。不过,如果一不小心给它选择或复制了字母、汉字或者标点符号,Vert 就会很为难,毕竟它不了解 1,000 字 100 块的稿酬标准。在 Workflow 中使用「Number」动作可以判断输入内容是不是数字。


题图来自 Unsplash,作者 Daniel McCulloughl

你可能感兴趣的:(把重复的操作交给 Workflow(2)——创建简单的 Workflow)