Workflow 介绍

前阵子某电商 iPhone 8 大降价,就趁机入手了一个,用了 3 年的 5S 终于退役了。之前用的是 iOS 8,升级到 iOS 11 之后感觉变化还是很大的。让我觉得比较新颖的是 Workflow 这个应用(虽然这个应用早就出来了,之前从来没有用过),其主要功能是将一系列操作整合到一起,然后一键自动执行,用来提高效率,比如一键分享图片到各个社交平台。

当然,它有各种各样的用法,就看你的需求和想象力了。其内置了一系列操作称之为 「Action」。你可以根据你的需要,把各种「Action」组合起来,形成一个「Workflow」,然后一键执行。看了几个例子和帮助文档之后,我决定自己做一个试试。

Air Quality Index 制作思路

在 macOS 有个很著名的应用 「Alfred」,其内部也支持 Workflow,其中有一个查询空气质量的 Workflow, 我决定先仿照这个来一个。其大概工作流程是:

首先需要去 PM25.IN 了解一下查询控制质量 API 的使用,要想查询空气质量,需要一个 PM25.IN 的 AppKey。为了简便起见,就没有申请新的 AppKey,使用其公共测试 AppKey,以后正常使用的时候,最好单独申请一个属于自己的 AppKey。

得到 AppKey 之后,通过http://www.pm25.in/api/querys/pm2_5.json这个接口去获取空气质量数据,调用方法,参照其文档:

屏幕快照 2017-11-05 17.32.48

我们至少需要传递一个参数,即城市的名称,然后这个 API 回返回一个数组,数组中的每个项都是一个字典,代表这个城市一个检测点的数据,我们关心的数据有,监测点名称(position_name)、空气质量(quality)、空气质量指数(aqi)、PM2.5 颗粒小时平均值(pm2_5)等参数。

了解了这些之后就可以动手做了,从一个程序员的角度来看「Workflow」类似一种图形化的编程工具,其提供了Scripting类似一种图形化的编程语言。通过它你可以给变量赋值、获取变量值、流控制、循环控制、处理列表,字典等数据等。其他的功能类似于其他编程语言中的库,你可以通过这些库,获得设备的信息、或者对图像进行处理、发起 HTTP 请求等等,最终通过「Alert」、「Notification」、「Vibrate」、「Play Sound」、「Speak Text」等表现方式 ,将处理后的结果输出。

需要注意的是,每个「Action」都有一个输入和输出,上一个「Action」的输出,默认会成为下一个「Action」的输入,在有些地方需要将数据保存到变量中,以免被覆盖,在后面使用的时候,再取出来。更详细的文档说明参考 Workflow Documentation.

Air Quality Index 使用说明

可以从 Air Quality Index 下载我做的查询空气质量 Workflow,在使用的时候,替换你在 PM25.IN 中申请的 AppKey, 替换位置如下截图中的Text中的值(默认使用的是 PM25.in 公共测试 AppKey)

aqi_appkey

然后,根据自己的使用情况,将经常查询的城市,加入到如下截图所示的List中,这样就可以快速查询这个城市的空气质量情况

aqi_input

最终运行效果如下:

air_quality_index_workflow