什么是二维码

​  二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。

​  二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

特点:

信息容量大, 可以容纳多达1850个大写字母或2710个数字或500多个汉字
应用范围广, 支持文字,声音,图片,指纹等等...
容错能力强, 即使图片出现部分破损也能使用
成本低, 容易制作

容错级别:

​ **L级**(低) 7%的码字可以被恢复。
​ **M级**(中) 的码字的15%可以被恢复。
​ **Q级**(四分)的码字的25%可以被恢复。
​ **H级**(高) 的码字的30%可以被恢复。

二维码生成插件qrious.js

  qrious是一款基于HTML5 Canvas的纯JS二维码生成插件。通过qrious.js可以快速生成各种二维码,你可以控制二维码的尺寸颜色,还可以将生成的二维码进行Base64编码。

参数 类型 默认值 描述
background String "white" 二维码的背景颜色。
foreground String "black" 二维码的前景颜色。
level String "L" 二维码的误差校正级别(L, M, Q, H)。
mime String "image/png" 二维码输出为图片时的MIME类型。
size Number 100 二维码的尺寸,单位像素。
value String "" 需要编码为二维码的值

qrious生成二维码的代码:

<html>
<head>
<title>二维码入门小demo</title>
</head>
<body>
<img id="qrious">
<script src="qrious.min.js"></script>
<script>
var qr = new QRious({
element:document.getElementById('qrious'),
size:250,
level:'H',
value:'http://www.baidu.com'
});
</script>
</body>
</html>

网站扫码登录的一些理解:

第一步:用户A访问网页版系统点击使用二维码登录,系统服务器为这个会话生成一个全局唯一的id,并以此id为基础生成url做成二维码放到页面上(www.xxx.com/login.html?id=xxxxxxx),
于此同时需要把此id写到redis之类的数据库中(可以以id为key),此时系统并不知道访问者是谁。 第二步:用户A打开自己的该系统的手机APP并扫描这个二维码,首先验证手机端用户是否登录,登录过后跳转到扫码得到的url中。 第三步:手机端是登录状态,用户点击url中的确认登录后,手机上的客户端将账号信息和这个扫描得到的id 一起提交到redis中(根据id这个key,把用户信息及token之类的登录信息写到value中)。 第四步:一般来说在第一步之后,需要建立一个长连接或者轮询查看redis这个以id为key的value值,如果value不为空且验证用户身份后,通知网页版系统,这个ID对应的用户是A,然后使其登录网页版。
但是这种长连接是比较耗费资源的,可以考虑用GOEASY之类的web消息推送来代替长连接这种方式。

最新文章

  1. dvwa第一次接触
  2. C++ 动态数组实例
  3. (译)【Unity教程】使用Unity开发Windows Phone上的横版跑酷游戏
  4. 在ps中画两个同心圆并且把两个同心圆进行任意角度切割
  5. Mysql or Mongodb LBS快速实现方案
  6. URAL 1517 Freedom of Choice(后缀数组,最长公共字串)
  7. PC硬件之我见——CPU篇
  8. error BC31019 无法写入输出文件 未指定错误
  9. Ubuntu 10.04下安装Qt
  10. jquery find()和filter()的区别
  11. 使用JSmooth制造java jar文件可以运行exe文件教程图像
  12. Xcode 9.0 新增功能大全
  13. [bzoj1488][HNOI2009]图的同构——Polya定理
  14. 分享Winform datagridview 动态生成中文HeaderText
  15. Jquery 在子页面上设置父页面元素的值
  16. 使用npm安装appium时的坑
  17. WebFrom 小程序【分页功能 】
  18. [转载]震惊!QWidget竟然可以嵌入到QML中,QMl窗口句柄竟然是这样获取
  19. ubuntu安装cocos2dx
  20. [CodeForces - 447B] B - DZY Loves Strings

热门文章

  1. wpf 动态得到label的宽度(无刷新情况)
  2. numpy 排序, 查询功能
  3. redis 连接池的一些问题
  4. ThinkPHP5 为什么取消了单字母函数?
  5. requireJS多页面应用实例
  6. CentOS部署NetCore - 3. 部署站点
  7. opencv读取中文路径报错的问题
  8. 第四章 Kubernetes 架构
  9. ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(转)
  10. 转 Quartz将Job持久化所需表的说明