在 Mac 上扫二维码
更新于 · 作者 Anton Shakirov
二维码是画给手机摄像头看的,而摄像头恰恰是你没办法对着自己屏幕的东西。hop 就在码待着的地方把它框起来——浏览器标签页里、pdf 里、幻灯片上、暂停的视频里——再把里面装的东西交给你。

| what it is | qr code scanner inside hop, a menu bar app for macOS |
|---|---|
| price | free — no trial, no pro tier, no account |
| licence | MIT, source on GitHub |
| requires | macOS 14 or later, Apple silicon or Intel |
| works offline | yes |
| data sent anywhere | none |
屏幕上的码为什么反而难办
码已经在 Mac 上了,而通常的读法要动用第二台设备,结果链接到了错的那一台,还得再发回来。
Mac 自己的摄像头也帮不上忙:它对着的是你,不是屏幕。所以答案根本不是摄像头。这个码得从它本来就由之构成的那些像素里读出来。
在 Mac 上怎么扫二维码
手势就是你截图时用的那个:在码周围大致框一下,里面装着的东西以文字的形式回来,让你在动手之前先读一遍。这个顺序要紧——屏幕上的码是一个没人核对过的地址,而手机摄像头会在你来得及看清之前就把它打开。网址会配一个打开按钮,别的内容则作为文字复制出来。
快捷键、同一个框还能读到什么、这个模块在哪里打开——说明书这一头的内容,你自己语言的版本: 说明里的文字识别
框里不必只装着码:周围的文字会在同一次识别里一起读出来,所以把一张账单整个框下来,链接和单号会一起给你。
同样的框、同样的手势、同样的窗口,也是这个模块对付屏幕上普通文字的办法。 把文字从屏幕上取下来
不在屏幕上的码
码待在一个文件里而不是摆在你眼前时,再去框屏幕就绕远了。把图片拖进窗口,或者用 ⌘V 粘一张进去。
- 存成 pdf 的票或登机牌
- 海报、菜单或者包裹面单的照片
- 同事在聊天里发来的一张截图
- 上面印着付款码和单号的发票
在 Mac 上读二维码的那些免费办法
流传的有三种,各自能应付一部分情况。装东西之前,最好先弄清楚自己属于哪一种。
先把码截下来,再交给实况文本去读
按 ⌘⇧4,在码上拖一下,然后打开这张图去找那个链接。论坛上大多数回答给的就是这条路,能成的时候它一分钱不花。
能不能成,取决于系统愿不愿意把这张图交给实况文本。对于应用自己画出来的画布,这是抛硬币,而且你得先把文件做出来才知道结果。无论如何,桌面上现在多了一个你并不想要的 png。
拿手机对着屏幕
iPhone 的相机不装任何应用就能读码,前提是对应的设置开着。贴在海报上的码,这一页上没有任何东西比它更快。
可如果码在你自己的显示器上,这就成了一趟往返:解锁、打开、对准、对焦。然后链接在手机上打开了,而你人坐在 Mac 前面。
Apple 自己的说明讲了相机这条路,以及它需要哪一项设置(英文页面)。 扫描二维码 — iPhone 使用手册
把图片传到解码网站
有些网站收一张图,把码里的内容打印出来;人们互相传的那些 macOS 快捷指令,多半也是这么干的——把图片发给一个网页接口,再把答案读回来。
通往公开页面的链接,这样处理没问题。付款码、票据或者一次性登录码就是另一回事了:为了弄清里面是什么,整张图去了别人的服务器。
所以:码印在纸上,或者在一张你直接打开得了的照片里,走免费路径就好,到此为止。简单的情况止于这一刻——码待在一个系统不肯当成图片交出来的地方:一帧暂停的画面,或者一个任意的矩形,里面某处有个码。过了这条线,每一条免费路径都要经过一次截图,而且常常还要经过一个陌生人的网站。
码已经在你屏幕上时,hop 改变了什么
| 你手上的情况 | 免费路径 | 用 hop |
|---|---|---|
| 码在纸上、海报上,或者别人的屏幕上 | 手机一秒就读了 | 用不上——拿手机就行 |
| 码在一张照片里,或者一个网页上 | 实况文本就地把它读了 | 两边结果一样 |
| 码在一帧暂停的视频里 | 截下来,打开截图,指望它能被认出来 | 就在播放的地方把它框住 |
| 码在一个不肯给系统交出图像的应用里 | 截图、保存、打开、读——还留下一个文件 | 框一下就好,不会留下要收拾的东西 |
| 码旁边还印着一个单号 | 用一种办法读码,再用手把号打一遍 | 一次识别,两样都给你 |
| 付款码,或者一次性登录码 | 解码网站要你把图片传上去 | 就在这台 Mac 上解开,关着 Wi-Fi 也能用 |
扫出来的码是不可信的输入
二维码用肉眼读不出来,这正是它适合藏一个坏去处的原因。停车计时器上盖住原码的一张贴纸、发票上被换掉的码——你看不出来,一个先动手后说话的扫码器也看不出来。
先读出来,再决定做什么
hop 把读到的内容显示出来,然后就停在那里。「打开链接」按钮只对网址出现:电话号码、Wi-Fi 密码或者一张名片,都只是一段你自己读、自己用的纯文本。不会替你拨号、入网,也不会替你添加联系人。
在地址被打开之前先看见它,这不是小事——它就是读一个码和听一个码的全部差别。
读出来的内容同样会落进剪贴板历史,所以一小时前扫的那个码还在。 剪贴板历史留下些什么
条形码出自同一次识别
识别没有单独的模式要切换。文字、二维码和包装上那种普通条形码是一次读出来的,所以框一张包裹面单,运单号和码会一起给你。
什么都不会离开你的 Mac
码在本地解开,用的是 Apple 自己的 Vision 引擎——和系统用的是同一个。没有图片被上传,没有服务器看见你的屏幕,关着 Wi-Fi 也能用。
对码来说,这件事比对文字更要紧。你最不愿意为了一个免费应用而交给陌生扫码服务的那些东西,恰恰就是你急着扫的那些。
hop 没有账号、没有画像、没有遥测。它唯一发出去的东西,是检查更新时报上自己的版本号。
解码本身用的是 Apple 的条码检测,有文档,任何 Mac 应用都能调用(英文页面)。 VNDetectBarcodesRequest — Apple 开发者文档
frequently asked questions
- 我的 Mac 能读屏幕上的二维码吗?
- 靠它自己不行,至少对屏幕上任意一块区域不行。实况文本能读系统认得出是图片的那种图片里的码——照片、网页上的图——所以常见的建议是先把码截下来,再打开截图。hop 省掉截图这一步,直接读你框出来的那个矩形。
- 不用手机能扫二维码吗?
- 能,这正是它的用处。码从 Mac 的屏幕上或者一个图片文件里读出来,链接就在你面前这个浏览器里打开。
- 它能离线用吗?
- 能。解码在你的 Mac 上完成,用的是 Apple 的 Vision 引擎。什么都不上传,什么都不需要联网——只有你选择打开的那个链接需要。
- 它会自动打开链接吗?
- 不会。你先看到读出来的内容,想打开再按「打开链接」。而且只有网址才有那个按钮:Wi-Fi 密码或者一张名片仍是纯文本,因为扫出来的码是不可信的输入。
- Mac 上怎么读 Wi-Fi 二维码?
- 框一下,你会拿到网络名称和密码的文字,再由你自己填进 Wi-Fi 设置。hop 不会替你连网络:Wi-Fi 码是印码的人递过来的一组凭据,仅凭它的一面之词就入网,不是一个应用该悄悄干的事。
- 除了二维码,它也读条形码吗?
- 读,和文字在同一次识别里,没有模式要切换。包装上那种普通条形码的读法,和二维码是一样的。
- 码很小,或者有点糊,怎么办?
- 把框画大一点再试一次——框可以很粗略,码周围多框一些不花任何代价。余地比看上去大:在 macOS 26.6.2 上,一个装着 43 个字符链接的码,缩到 28 像素见方仍然解得开,到 24 像素才失败。缩略图读不出来的话,把图按原始尺寸打开通常就好了。
- 它免费吗?
- 完全免费。没有试用期,没有专业版,没有什么需要解锁。hop 是开源的,识别模块对所有人一视同仁。
other tools in hop
- keep awakedownloads, renders and calls run to the end. even with the lid closed.
- speed testdownload, upload and responsiveness — measured through Apple's own servers.
- app firewallsee which programs go online, and where — block any of them with one click.
关于作者

Anton Shakirov开发 hop
开发 hop,也编写本站的每一页。十九个工具收在一个菜单栏图标下,MIT 许可,源码公开。issue 和邮件都由他本人阅读和回复。