# 用 Shortcuts 体面且有个性地展示二维码

> 本文公开全文。

原文：https://utgd.net/article/10122

你把常用二维码放在哪里？

我曾经设计过一套制作锁屏二维码的方法，也有读者把二维码打印出来直接贴在手机背面，懂点技术的玩家还会用 Shortcuts（快捷指令）自制“一键扫码”图标……遗憾的是，这些方案并不通用，可能还会让桌面变得像蜂窝，并不雅观，也容易误触。估计最后还是老老实实打开 App，“拼手速”耳。

根本的问题还是 App 越来越多，各种“码”也是层出不穷：微信、支付宝、微博、Instagram，健康码、付款码、收款码、地铁码、公交码、名片二维码……既然如此，与其被动兵来将挡，不如设法主动一网打尽。我的方法是用 Shortcuts 做一个常用二维码卡包，置于桌面，快速调用几乎所有常见二维码和扫码功能：

但凡可以截图保存的二维码，以及可以通过 URL Scheme 打开的二维码或扫码界面，都能添加到上图的“卡包”中。

- Shortcuts 动作下载

- 配套调试动作下载（方便调试，非必备）

- GitHub 第一时间获得更新

## 二维码的调用方式

二维码越多，其实越能够激励用户找出一个通用方案。知名播客主播 Timothy Ferriss 在《巨人的工具》中提到一种习惯，“想不出10个点子，那就想出20个”：

> 如果你想不出10个点子，那就想出20个……你可以给自己施加更大的压力。完美主义是点子肌肉的大敌……你的大脑会试图保护你免受伤害，阻止你想出令人尴尬、愚蠢，让你遭受痛苦的点子，而克服这一本能的办法就是强迫大脑想出糟糕的点子。

一旦愿意打开思路，就会跳出制作一堆桌面图标的传统做法，我甚至想出了“添加到 Apple Wallet”这种鬼主意——其实图片类二维码真的可以塞进 Apple Wallet！虽然我不会真的用 Apple Wallet（做起来非常麻烦），但是“卡包”的界面很有借鉴意义，我回想起之前用 Shortcuts 调用联系人收件地址的做法（本文应读者强烈要求提前发布，关于收件地址的文章稍后发表），顺利将其拓展到调用二维码，最终做出了“二维码卡包”。

当然，更宽的思考框架不仅仅是一种引导，也有助于认识二维码的调用机制。跳出支付宝和微信的范围，把微博、Twitter、Instagram 等社交网络也纳入考量范围，就会发现二维码虽然数量众多，但从调用方式上看无外乎两种形式：一种是静态二维码，可以截图保存，比如微信和支付宝的收款码；另一种是动态二维码，只能打开 App 刷新，通常可以通过 URL Scheme 跳转，包括支付宝健康码、行程码以及乘车码，等等。只要掌握图片和 URL Scheme 这两种调用方式，绝大多数二维码就能灵活调用。

图片类二维码很容易获得，在二维码界面截图或长按保存即可；URL Scheme 可以上网搜索，例如 支付宝 健康码 URL Scheme，常用 App 多有收录。

## 处理图片类二维码

读书时有位同学比较早熟，注重职场礼仪，习惯把各种名片二维码、收款码存在手机里，加好友、转账时直接拿出来，干净利落，也是一种礼貌。后来此君一路扶摇直上，去阿里继续发光发热，也是不负有心人。

保存二维码图片到相册，是一种“ugly but useful”的做法。不过，若是没有经常整理相册的闲情逸致，估计要用二维码的时候就会发现石沉大海，还不如直接打开 App 来得省力。把常用二维码图片存进 Shortcuts 动作，更加稳妥可靠。

Shortcuts 中有个“Base64 Encode”步骤，可以将图片转为一串文本编码，从而嵌入任何 Shortcuts 动作，要用的时候再转换回来就行了。为避免 Shortcuts 自作主张裁掉图片的多余部分，建议一开始就自行裁剪为正方形图片。文章开头提供了一个 Shortcuts 调试工具箱，里面就有 Base64 编码功能，运行后选中二维码图片，就能得到其对于编码。本节以支付宝收款码为例进行示范，截图中的二维码经过美化，方法可参照这篇文章。

获得 Base64 编码后，即可将其填入“卡包”Shortcuts 动作开头的字典（Dictionary）中，同时记得要起个名字，比如“支付宝收款码”。你可以如法炮制，继续添加其他 App 的二维码，只要是静态的图片，都可以编码后加入 Shortcuts 动作。

另外，“卡包”动作特意设置了一个“Cancel”（取消）选项，除了允许你误点后反悔，更重要的是，这条文本和二维码图片混在一起后就会触发 Shortcuts 的列表显示机制：如果同时出现文字和图片，就全部以“缩略图\+名称”的形式呈现，比直接放一堆二维码更容易识别——毕竟，人类是不能读取二维码的。之后，选中一个二维码，即可在通知中显示其原图。选择通知而非预览（Quick Look）作为显示媒介，是为了让二维码多存留一段时间，免得手抖退出显示界面后又要从头来一次，弄巧成拙。

图片类二维码还有一些创作空间，可以把自己的头像和二维码结合起来，制作所谓的“艺术二维码”。转账时，艺术二维码和付款界面的头像一致、相互认证，利于建立信任；最起码，艺术二维码也是个性的展示，在线下结交新朋友时更容易给人留下印象。

最后，调用图片类二维码时，整个 Shortcuts 动作都在本地完成，无需联网、不用等待 App 加载，与人交流时利落干脆，不用双方抢着结帐一样比赛谁先加载出二维码页面。除非你真的把二维码设置成壁纸或印到手机壳上，不然没什么比本节方法更快的了。

## 处理二维码链接

并非所有二维码相关功能都可以通过图片解决，涉及付款、行程的二维码就往往要在 App 中刷新，另外，扫码功能也必须打开 App。通常，这些功能可以通过 URL Scheme 调用，尤其是支付宝，健康码、行程码、乘车码等常用功能都可以通过 URL Scheme 打开，甚至不同省市还有专属的 URL Scheme 链接。只要设置正确，不仅二维码，扫码界面也可以通过 Shortcuts 打开，总之各种和“码”相关的操作都可以汇集一处，颇具自动化潜力。

和添加图片二维码类似，URL Scheme 二维码也需要先填写动作开头的字典。一共有两处字典需要填写，第一处在动作开头，包括二维码名称和自定义图标的 Base64 编码（非必需），用于生成二维码列表；第二处在动作后半部分，用于收纳对应二维码的 URL Scheme，两处字典中的二维码名称需保持一致，保证 Shortcuts 正确识别。“卡包”动作通过二维码名称来区分是否需要 URL Scheme，简单直接，你只需要在自定义二维码后加上 URL 字段，就可以触发打开相应 URL Scheme 的操作。

URL Scheme 二维码的图片并非必需，你可以空着第一处字典中的 Base64 编码不填，完全不影响动作运行；如果希望整个二维码列表风格统一，则不妨设置图标。和处理图片二维码类似，找到心仪的图标（最好是正方形，避免被裁剪）后将其转为 Base64 编码，填入动作开头的字典即可。

下面收录了一些常用的二维码相关 URL Scheme，供君自取，未收录的通过搜索 关键词 \+ URL Scheme 不难找到。

- 支付宝健康码（杭州）：alipays\://platformapi/startapp?appId=20000067&chInfo=ch\_desktop&url=https\://h5\.dingtalk\.com/healthAct/index\.html

- 支付宝付款码：alipay\://platformapi/startapp?appId=20000056

- 支付宝乘车码：alipayqr\://platformapi/startapp?saId=200011235

- 支付宝扫码：alipayqr\://platformapi/startapp?saId=10000007

- 微信扫码：weixin\://scanqrcode

- QQ 扫码：mqqapi\://qrcode/scan\_qrcode?version=1&src\_type=app

## 小结

每次 iOS 或 Shortcuts 更新，“一键扫码”类的文章都是雨后菌子一般泛滥：iOS 加入 3D Touch，微信支付宝一键扫码类的文章总是仿佛约好了一样一起发布；Shortcuts（Workflow）支持了添加桌面图标，再发；桌面图标不再需要跳转主应用，这些文章接着发……烦人之余，确实说明扫码问题一直没有被妥善解决。创建一颗两颗桌面图标，只能解决零零散散问题；用 Shortcuts 做一个“卡包”、汇集各类二维码，就能覆盖更多的 App 和场景。

诚然，自动化工具并非不可或缺，但正如出门可以把零钱、证件和卡券往裤兜里一塞了事，也可以配一只卡包将其妥善收纳，这两者之间很难说有巨大的效率差距，更多时候，其实是品位的问题。

---

[前往标准阅读页](https://utgd.net/article/10122?audience=web)
