在 iOS(包括 iPadOS)中,“文件”的存在感非常微弱。应了 Jobs 在 2005 年的言论,Apple 眼中的文件管理工具是 Pro 用户的专利,因而在设计 iOS 这款消费级产品时,第一个捧上祭坛的就是文件管理相关功能。
——比如说,你想在 iOS 主屏幕上放一个文件的快捷方式?简直是做梦。十多年过去,苹果可以让部分 App 图标动起来(iOS 7),也可以把 Android 风格的小部件引入 iOS,但就是不会让你轻易把一个文件摆在桌面上。(忘了原始文件吧,为什么不试试我们 App Store 新上架的这款软件呢?)几年前,MacStories 用了洋洋洒洒的几篇长文试图往主屏幕上塞一个快捷方式,Javascript、URL Scheme、Shortcuts 和 iOS 特殊路径轮番上阵,最终才勉强实现。后来国内有些人居然还在前述方案上继续折腾,客气点说是叠床架屋,不客气地讲就是狗尾续貂。
所幸近年的 Shortcuts 指出了一条捷径,你不需要任何复杂的技术即可往 iOS 主屏幕上添加文件快捷方式。
如何添加文件快捷方式(以及自定义打开方式)
在最近两版 iOS 系统中,Shortcuts 增加了大量文件相关的模块,本文所利用的正是其中一员:Open File(打开文件)。不需要 Javascript,没有 URL Scheme,不需要嵌套迭代等 Shortcuts 进阶用法,就一个模块,解决所有问题。甚至没必要提供下载链接。

这个模块只有两个参数,文件和打开方式,似乎过于朴素;不过,Shortcuts 动作可以放在主屏幕上,一旦用上这一特性,马上就会产生化学反应:点击桌面上的图标,就能用指定 App 打开 Files 中的任何一个软件!你可以把常用证件、证书或文档的快捷方式添加到桌面上,需要出示的时候不必再去相册或者 Files 里苦苦翻找。

和传统方案相比,使用 Shortcuts 自带模块有两个好处:
- 是真正意义上的“快捷方式”,不怕移动或修改原始文件;
- 可以自选打开方式,绕开 iOS 绑定的软件。
关于修改原始文件。传统方案主要利用 URL Scheme,可 URL Scheme 是死的,而文件则会时常变动,今天可能要改个名字,明天或许要挪个位置,URL Scheme 也随之失效。而使用 Open File 模块制作的桌面快捷方式则不容易失效,无论更改原始文件的名称还是移动其位置,Shortcuts 只会再问你一次是否允许访问移动后的文件,而不会像 URL Scheme 那样动辄查无此人。

关于打开方式。在 MacStories 的方案之后、本文方案之前,我曾经直接通过 URL Scheme 打开文件,但总是被系统引向错误的打开方式,比如明明只想瞥一眼证件,却直接跳到 PDF 阅读器。1“打开方式不对”是一种调侃,几乎所有用过电脑(Computer)的人都懂,但我很怀疑在 iOS 生态圈中成长起来的人或许不会再理解这个梗,因为 iOS 系统大大弱化了“打开方式”的概念,你点开一个文件,没得选,聪明的 Apple 已经帮你绑定了一个 App。我经常使用 CSV 文件,而 iOS 强制用各个文本编辑器打开2,我受不了这一番又一番的越俎代庖,一度把手机上的软件删到只剩一个能够打开 CSV,直到 Anki 也可以打开 CSV,系统遂把两者绑定在一起——我同时也是 Anki 重度用户,终于不能再靠删软件解决问题了。
一些进阶用法
有些文件不止一种常用打开方式,为此可以设置两个 Shortcuts。例言之,我有一个工作专用的通讯录文档,其中记录了几百个商业上的联系人,一般我用 Taskmator 浏览它,以便利用该软件的过滤语法,快速查找联系人;但这个软件毕竟不是专业的编辑器,如果要编辑联系人信息——尤其是批量修改——我会另选文本编辑器。

我可以直接做两个 Shortcuts,都摆在桌面上,也可以把两种打开方式塞在一个 Shortcuts 里,每次在列表中选一个软件,这些纯属个人好恶,只要掌握打开文件的基本操作,后续都可以自己作主。
此外,我们还可以最大程度上延续桌面端的文件操作习惯,把一个项目所涉及的文件都塞在同一个桌面文件夹(或桌面)上,免得在多个软件之间奔波。Shortcuts 的桌面快捷方式支持自定义图标和颜色,我一般连自带的都用不完,不过只要你愿意,也可以自己准备图标。

只可惜每创建一个快捷方式,背后就要准备一个 Shortcuts 动作,这一方案大概算不上多么漂亮。
小结
Open File 是典型的系统级操作,弹指一挥,就能临渊架桥,开辟出以前不太可能的通路。过去一大群老玩家跑断腿、用尽脑,也只能弄出一个弗兰肯斯坦;我没有参与那场桌面文件快捷方式在自动化挑战赛,不过先后和 Safari 阅读列表、书签 战斗过,深知在 iOS 甚至 macOS 上搞自动化,相当于戴着枷锁跳舞。后来也是 Shortcuts 新增一批模块,我才设计出更简单的方案。当然,恐怕也只有曾经深陷泥淖之人,才会在清风徐来之际,第一个嗅到芬芳。
愿 Shortcuts 多提供一些模块,让自动化少一些弯路。