大部分的事情捷径都可以在内部完成,但当牵涉到抓网页、API、JSON 等需求的复杂捷径,或者调试捷径时需要测试的数据比较多时,单靠捷径本身就有点力不从心。

在这篇文章里,我将推荐一下我在制作复杂捷径时会使用的各种工具,以及使用到它们的情景,以供参考:

  1. 备忘录、Drafts/Kodex:在 macOS、iOS 上同步文本
  2. Web Tools:iOS 查看网页元素
  3. Jayson:在捷径里直接查看/复制 JSON 词典值
  4. Paw:macOS 端的全功能 API 调试工具
  5. Launch Center Pro 等启动器:更快地调用捷径

备忘录、Drafts/Kodex:macOS、iOS 同步纯文本

备忘录、Drafts、Kodex

在制作捷径,以及鼓捣其它 iOS 自动化时,我们经常会有记录文本,并且和 macOS 端同步文本的需求。比如:

  1. 在查找网页具体元素时:我们获取了网页的 HTML,需要仔细查看细节,对比内容。
  2. 有多个链接要测试时:我们发现某个捷径可以下载大部分微博视频,但总下载不了一些特定的微博视频。
  3. 为捷径做准备工作时:我们要做某个捷径,这个捷径需要调用大量我们已经查到的 URL Schemes。
  4. 需要调用 API 时:我们需要记录 API 中各种需要的 ID。
  5. 需要写 JavaScript 时:我们需要在一个比较友好的环境下编写 JavaScript。

这几个需求用纯文本1 的编辑器解决是最合适的,但是如果想省钱,苹果生态内自带的备忘录也可以胜任大多数需求。苹果生态下想用更合适的工具,Drafts 是我的推荐。如果电脑平台是 Windows,那就需要用 Dropbox 之类的同步平台就行,而 iOS 的纯文本工具,我更推荐支持代码高亮的纯文本编辑工具 Kodex

左:编辑状态;右:阅读状态

备忘录最大的优点是免费,可以通过苹果的 iCloud 来同步。它在编写的时候基本上可以认为是纯文本,在非编辑状态的时候会有超链接的效果,所以有时候编辑一些 URL Schemes 就容易发生误打开链接的情况。

左:阅读模式;右:链接模式

Drafts 在支持了 Mac 版之后,变得更能胜任这个工作。它的编辑器除非打开链接模式,否则都是纯文本。有动作可以支持 URL 的编码和解码。还支持高亮 JavaScript 的代码。

Drafts 的 JavaScript 模式

如果不是苹果生态,那么就要解决 iOS 和 Windows 的同步问题。苹果在 iOS 12 之后推出了文件应用(Files.app),让文件管理方式有一些接近传统的桌面体验。有一些比较先进的编辑器对它进行了支持,在这其中,Kodex 是支持语法高亮的一个纯文本编辑器。在生成一个文本文件,最后保存时,它会问你是保存在哪个位置,这时候你只要保存到 Dropbox 等支持文件应用的 App 里,就能和 Windows 端保持同步。

Kodex 的编辑器与 JavaScript 语法高亮

Web Tools:iOS 查看网页元素

我们已经知道如何在桌面端上的 Chrome 或者 Safari 查看和搜索网页元素,在桌面端上最舒服的就是你可以层层折叠 HTML 标签,这时候网页会即时反馈给你该标签作用的位置。

但是如果你手边只有 iOS 设备,又或者你是一个希望践行 iOS Only 的 Power User,你可能会需要一个在 iOS 端同样能够做到像 macOS 那样审查元素体验的工具。目前在 iOS 上,能够最好完成这个任务的选择就是 Web Tools

在 iOS 上大多数工具实现这一点是直接获取了网页的源代码,比如 View Source 和 Srcfari。但它们工作的方式都是直接把网页的源码扒下来,顶多提供一下搜索功能,不能提供视觉上的互动,所以作用非常有限。

Web Tools 最大的特点是能够做到像桌面端的 Safari 和 Chrome 那样,在审查元素时,对每个标签即时反应:

在 Web Tools 中高亮少数派广告区

不过如果想要一个 JavaScript 的控制台(Console)的话,需要另加 30 人民币解锁内购。

Jayson:在捷径里直接查看/复制 JSON 词典值

纯粹使用 iOS 平台制作捷径时,还有个折磨人的事,就是查看从 API 获取的 JSON 文件的内容——捷径获取的 JSON 看起来和乱码一样。

尽管我们已经介绍了 JSON Formatter 这样的网页工具,但用起来还是免不了要跳出跳入,还要花一些时间让网页转换 JSON 的格式。

如果我们想制作捷径时不脱离捷径地轻松查看 JSON 文件,就需要用到 Jayson 这个应用。

在运行捷径时直接查看 JSON

像图里展示的这样,它可以做到让我们直接在运行捷径时就以非常舒服的方式查看 JSON 的值,并且可以直接复制想复制的内容。

但是它的使用方法有一些特别,需要多说明一点。

苹果在收购 Workflow 之后其实做了两种形式的「捷径」。一种是我们熟悉的 Workflow 形式的这样的捷径,也是这个教程的主体,它的特点是自成一个流程,包含多个操作等。另一种「捷径」是直接把一个应用的某个功能放到 Siri 里,让 Siri 可以直接召唤这个功能。比较典型的代表是 WWDC 上展示的那种买咖啡。

苹果做后一种捷径,是希望借由算法和自定义的命令,能够让我们感觉 Siri 更加智能。但是实际使用上这方面的算法还是不能应付过于复杂的情况,我们周围应该也没多少人真正在使用这种功能。

但是这些 Siri Shortcuts 有另一个特征——它们可以直接被捷径调用。但是捷径在调用它们时又有一个限制,是不能自定义输入,而是只能将剪切板的内容作为输入。

所以更务实的那些开发者,也是在自动化方面摸索得更久的开发者(比如 PCalc、Drafts 等应用的开发者)们,它们直接让用户可以把应用的具体功能给设为 Siri Shortcuts,随后就能做到直接让捷径调用。

Jayson 正式利用了这个特性,它查看 JSON 的功能被做到了 Siri Shortcuts 里,名为「View JSON In Notification」:

在捷径中使用 Jayson

只要我们在运行捷径时,在运行「View JSON In Notification」这个操作之前加一个「拷贝至剪贴板」,就可以保证传入的是剪切板的内容,也就顺理成章地可以按格式查看 JSON。

Paw:macOS 端的全功能 API 工具

如果你不算是个 iPad Only 的践行者,不执着于 iOS 查看 JSON,而是不管工作还是生活都是 macOS/iOS 双管齐下。那么我会更建议你用 Paw 这个工具来把 API 先跑一遍,等把需要的 JSON 和 API 结果都准备好,再同步到 iOS 设备上复制到捷径里。

如果你不是程序员,从来没接触过 API 这样的东西,捷径这种图形界面的方式会比较容易上手。它不仅可以让我们手选请求的方式,把需要填的变量像填空一样对应到相应的位置。

Paw 的用法和捷径非常接近,而且更加全面。它不仅能填写请求头部之类的信息,还能填写 URL 的不同部分等等:

Paw 的界面就像捷径一样易懂

对于请求的结果,Paw 也会用易于阅读的方式予以呈现:

Paw 对请求结果(JSON)的展示

最后,这些请求结果都可以以文件的形式保存到设备之中。所以当你摸透一个服务的 API 之后,你只要把它保存到 Macbook 上,下次再想查看需要的 API,重新打开这个文件即可。

LCP、Launcher 等启动器:更快地调用捷径

学完这些课程,我们的捷径库里应该会有不少这样的捷径:它们非常复杂,由多个操作组成,最重要的是,它们就像独立的应用,可以不借助任何应用去运行。

对于这样可以单独运行的捷径,我们应该把它们专门设为一个类别,赋予其独特的颜色:

给不同情境的捷径使用不同的底色

而其中较为常用的,我们可以把它们放到「今天」视图之中,便于快速调用。

但是,「今天」视图里能放的捷径有数量上限。或者如果我们讨论得更详细一点的话,其实通过「今天」视图调用的捷径还应该有一个特殊的前提,那就是这些捷径我们还希望在不离开应用的时候把它打开,比如 1Password 查找密码,我们如果打开一个需要输入密码的应用,然后拉出通知中心,通过「今天」视图里的捷径来调用 1Password 查找密码,那么我们复制密码之后就可以通过手势直接返回上一个需要输入密码的应用。

而有些捷径,我们没有这个前提,不是非得在「今天」视图里调用的话,就可以用 Launch Center Pro 这样的启动器来调用。我最常用 Launch Center Pro 调用的 3 个捷径是:

  • 打开 Inoreader 并开始在 Toggl 计时
  • 打开 Pocket 并开始在 Toggl 计时
  • 打开 Tweetbot 并开始在 Toggl 计时
左:主屏;右:Launch Center Pro 的 3D Touch

自从去年我把我的首屏重新「设计」之后就一直使用至今。我很满意这个留白但是它确实牺牲了一些位置。好在 Launch Center Pro 支持 3D Touch,可以快速呼出一个预设好的菜单,这些菜单里就是前面提到的 3 个捷径。

触发后其中某一个,比如 Inoreader 后会先打开捷径,检测目前 Toggl 有没有计时器在运行,如果有的话就会停到那个计时器,问我是不是要打开 Inoreader 开始阅读 RSS 并开始计时。如果是的话,就会在启动相应的 Toggl 计时器后跳转到 Inoreader,如果选否就会借由 Launcher 的 URL Schemes 退出到主界面。相关的技巧和实现方法我已经都写到这部教程的《专栏:过去的 URL Schemes 文章汇总与导读》和《25–3 将 Toggl 捷径打造得更完整和灵活》里了,如果忘记的话可以再翻回去看一看。

结语

一个工具做出来就会有形,有形就有了限制,有了限制就会需要有其它的工具在某些方面与其互补。即便是捷径这样所谓「突破 iOS 自动化可能性边界」的应用,也仍然需要各式各样的工具在各式各样的场景中助力。

这篇文章里基本上已经涵盖了我在制作捷径时用到的辅助工具,如果你还有什么需求,可以在 Slack 群2 里或是评论中来咨询。如果确实是我遗漏了的大家有需求的工具,我会更新到这篇文章中。

  • 1如果不了解纯文本的话,可以看一下我之前写过的《专栏:为什么 Markdown 会流行?》,这篇文章讲了纯文本的特点:https://sspai.com/post/51380?series_id=68
  • 2入群方式:从这个链接( https://d.pr/ecl2B )入群,随后私信我带有你头像的购买记录可以进入捷径频道。