V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
hanguokai
V2EX  ›  分享创造

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

  •  
  •   hanguokai · 2020-03-08 22:16:32 +08:00 · 3059 次点击
    这是一个创建于 1721 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近两周研究了一下 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 码。
    第 1 条附言  ·  2020-03-25 21:25:44 +08:00
    12 条回复    2020-03-25 19:29:23 +08:00
    AASW2ss
        1
    AASW2ss  
       2020-03-09 00:33:12 +08:00
    试用了一下,很不错。
    zdb1115
        2
    zdb1115  
       2020-03-09 00:33:53 +08:00
    收藏一下。
    HereApp
        3
    HereApp  
       2020-03-09 00:55:37 +08:00
    https://v2ex.com/i/EW6156pH.png
    很好用啊,感觉可以和我们软件结合,突破对 Chrome 的依赖呢。
    /t/643399
    HereApp
        4
    HereApp  
       2020-03-09 00:56:00 +08:00
    smarthing
        5
    smarthing  
       2020-03-09 08:21:36 +08:00
    我之前也做了一个,不如你这个好用,不知道 chrome 是否提供合并到一起的功能,让用户升级时直接升级成你这个。

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

    https://chrome.google.com/webstore/detail/quick-qrcode/ijoeanckpfaegjkbdmbihinbdpgpcbba
    licoycn
        6
    licoycn  
       2020-03-09 09:58:45 +08:00
    如果能够将小程序码识别出来就很好了 😊
    justin2018
        7
    justin2018  
       2020-03-09 12:25:51 +08:00
    测试识别
    justin2018
        8
    justin2018  
       2020-03-09 12:28:46 +08:00
    @smarthing 缺一个识别功能 😁 其他的 都挺好
    hanguokai
        9
    hanguokai  
    OP
       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
        10
    sobigfish  
       2020-03-09 17:14:28 +08:00
    @licoycn #6 https://cdc.tencent.com/2017/09/01/你一定不知道,小程序码是这样绽放的 / 其中很多个关键点第三方是不可能知道
    比如提到的 “将小程序码跟 32 种掩膜(又称「 mask 」..." 而且解出来脱离了微信也是没用的
    sobigfish
        11
    sobigfish  
       2020-03-09 17:23:48 +08:00
    之前用也是 v 友开发的 nenelpicledkmgnlaibhjkjobffpjoan
    唯一不方便的就是不能生成多行的(它是打开就是当前页,按回车出现输入框)很简洁
    midpoint
        12
    midpoint  
       2020-03-25 19:29:23 +08:00
    很好用,感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1104 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:45 · PVG 02:45 · LAX 10:45 · JFK 13:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.