新做的 QR 码生成与识别 Chrome 扩展

2020-03-08 22:16:32 +08:00
 hanguokai
最近两周研究了一下 QR 码(二维码的一种)的技术和生态,同时做了一个 QR 码生成与识别 Chrome 扩展。QR 码是将信息(文本、链接、字节)编码为易于识别的图像,有国际标准,然后可以方便地在各种设备之间“隔空”且无需网络的条件下传递信息。比如手机之间可以通过扫码交换信息,手机可以扫电脑上的 QR 码,反过来用笔记本的摄像头也可以扫手机上的 QR 码。

由于在国内移动端的使用非常普及,以至于现在在桌面端网页上也大量出现 QR 码。很多时候我并不想掏出手机扫电脑上的 QR 码,但是又想知道里面的内容是什么,这种情况下要是能直接在桌面网页里识别 QR 码就很方便了。这也是我实现这个扩展的动机之一。

做之前,试用了一些已有的 QR 码生成与解码的扩展,还挺多的。基本功能都有,不过感觉功能上都不同程度地少了一点。另外就是索取权限的问题,大部分扩展基本都需要这个“超级权限”:

“读取和更改您在访问的网站上的所有数据 (Read and change all your data on the websites you visit) ”

其实,生成 QR 码是完全不需要这个权限的,但是从图片中扫码就比较麻烦。要扫码就需要读取图片本身的内容,而这受浏览器同源策略的限制,只有同源的或者开启了 CORS 的图片才能读取。所以很多扩展就索取了这个“超级权限”,绕开同源策略的限制。但这个权限太大了,用着不放心,用户都不喜欢。所以我在实现这个扩展的时候,没有使用这个“超级权限”,而是将索取权限最小化(实现起来还挺麻烦的)。效果就是在很多网站上扫码可以不需要请求任何权限(同源或启用了 CORS ),比如在电脑上打开的一篇微信文章,需要的时候最多只会请求图片本身所在域名的权限。所以各位可以放心使用。

安装地址: https://chrome.google.com/webstore/detail/qr-code/cbimgpnbgalffiohilfglgkkhpegpjlo

以下为 Chrome Web Store 上的完整介绍。

轻松为网址、链接、文本生成 QR 码,同时支持右键菜单、本地文件和摄像头扫码。
核心功能:生成 QR 码与识别 QR 码。所有功能完全在浏览器本地实现,不会将任何数据发送到服务器。

1. 在页面中,通过右键菜单你可以:
• 选择含有 QR 码的图片扫码
• 生成当前页面链接的 QR 码
• 生成鼠标选中文本的 QR 码
• 生成页面上各种链接的 QR 码
• 生成页面上图片、视频或音频资源链接的 QR 码

2. 点击扩展图标会自动生成当前页面链接的 QR 码,方便在手机上扫描查看。也可自行修改输入,然后生成 QR 码并下载。

3. 在独立的 QR 码生成页面中,可以设置 QR 码的边缘大小、整体大小和纠错级别,并支持 png 或 svg 格式下载。

4. 在独立的 QR 码扫码页面中,可以通过图片 URL、本地文件或摄像头识别 QR 码。
3092 次点击
所在节点    分享创造
12 条回复
AASW2ss
2020-03-09 00:33:12 +08:00
试用了一下,很不错。
zdb1115
2020-03-09 00:33:53 +08:00
收藏一下。
HereApp
2020-03-09 00:55:37 +08:00
https://v2ex.com/i/EW6156pH.png
很好用啊,感觉可以和我们软件结合,突破对 Chrome 的依赖呢。
/t/643399
HereApp
2020-03-09 00:56:00 +08:00
smarthing
2020-03-09 08:21:36 +08:00
我之前也做了一个,不如你这个好用,不知道 chrome 是否提供合并到一起的功能,让用户升级时直接升级成你这个。

P.S. 我已经切换成你这个了。

https://chrome.google.com/webstore/detail/quick-qrcode/ijoeanckpfaegjkbdmbihinbdpgpcbba
licoycn
2020-03-09 09:58:45 +08:00
如果能够将小程序码识别出来就很好了 😊
justin2018
2020-03-09 12:25:51 +08:00
测试识别
justin2018
2020-03-09 12:28:46 +08:00
@smarthing 缺一个识别功能 😁 其他的 都挺好
hanguokai
2020-03-09 16:00:43 +08:00
@licoycn 微信的小程序码显然已经不是 QR 码了,这个扩展只支持 QR 码。

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html
https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html

从微信官方文档上看,小程序码是将小程序的 id 和 path 信息(URI)编码为图形,支持小程序码(推荐)和标准的 QR 码(不推荐)。我个人的理解是,因为所有 QR 码都长的一样,缺少品牌辨识度,所以微信自己设计了一种在外观上与 QR 码有明显区别的新的二维码,这样有助于提升品牌。不过小程序码目前只有微信客户端能识别,生成也需要微信后台参与(并有一定限制)。而 QR 码有国际标准、无专利费,所以生成和识别的客户端有很多。
sobigfish
2020-03-09 17:14:28 +08:00
@licoycn #6 https://cdc.tencent.com/2017/09/01/你一定不知道,小程序码是这样绽放的 / 其中很多个关键点第三方是不可能知道
比如提到的 “将小程序码跟 32 种掩膜(又称「 mask 」..." 而且解出来脱离了微信也是没用的
sobigfish
2020-03-09 17:23:48 +08:00
之前用也是 v 友开发的 nenelpicledkmgnlaibhjkjobffpjoan
唯一不方便的就是不能生成多行的(它是打开就是当前页,按回车出现输入框)很简洁
midpoint
2020-03-25 19:29:23 +08:00
很好用,感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/651023

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX