article_image

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

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

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

Alt text
快速浏览、展示二维码

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

二维码的调用方式

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

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

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

Alt text
借鉴收件地址名片夹的思路,做一个二维码卡包

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

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

处理图片类二维码

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

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

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

Alt text
可以用调试工具生成 Base64 编码

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

Alt text
添加图片二维码到字典

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

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

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

处理二维码链接

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

Alt text
跳转到支付宝乘车码界面

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

Alt text
URL Scheme 需要填写两部分

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

Alt text
添加图标让 URL Scheme 更容易识别

下面收录了一些常用的二维码相关 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 和场景。

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


  1. 有的码保存截图即可,有的如付款码则需要打开 App。
  2. 可惜的是,微信付款码和扫码不支持 URL Scheme。
  3. 不同行业也有差异,不同辈份更是卑尊有别,请诸君自己观察、不要照搬。

author_avatar

Lawyer, macOS/iOS Automation Amateur