介绍
随着智能手机的使用人群越来越广泛,基于二维码的应用也越来越多。今天,就和大家聊一聊二维码吧。
二维码是在一维码的基础上扩展出的,具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。
一维码是只在横向记录数据,书籍上的ISBN就是典型的一维码。
而二维码则在横向及纵向都会记录数据,我们常说的二维码其实是QR码,是众多二维码种类中的一员。
如图所示,QR码(Quick Response Code)通常都是一个由黑白方块组成的正方形。左上、右上、左下三个角落均有一个「回」字状的定位标识,保证程序在读取内容时可以正确的识别。
同时,QR码还具有容错机制,即使图案有一定的破损,仍可保证内容能够被正确的读取。生成的QR码图案容错率一般为7%,最高可达到30%。下图是同一内容,30%容错率的示例。
常见用途
QR码的应用范围广阔,现在已经很常见了,随便举几个例子:
微信
微信的QR码,在原有二维码图案的基础上加入了一些美化元素。
新浪微博
新浪微博很好的利用了QR码的容错机制,在二维码图案中加入用户头像,增强识别力。
QQ浏览器
QQ浏览器集成了网址生成QR码的功能,可将当前访问的网址生成一张二维码图片,用手机App扫描时即可快速访问。
应用方法
关于二维码最基本的使用方法,我们一定十分熟悉:
拿起手机,打开二维码扫描的应用,之后将摄像头对准海报或宣传页上的二维码图案,几秒钟后就能看到其中显示的内容。
接下来,我们就来聊一聊二维码的其他一些应用方式。
图案的再设计
由于QR码拥有良好的容错和定位机制,所以我们完全可以在原有黑白图案的基础上进行再设计。
只要保证足够的对比度,二维码图片包含的内容就可以很容易的被读取出来。
扫描后登录
由于二维码的内容可以是一段定制的文本,所以我们可以通过它进行很多「神奇」的操作。微信网页版的登录就是其中一例。
当我们访问微信网页版时,会有这样一个提示:
这个QR码其实包含了一个定制的网址 https://login.weixin.qq.com/l/密匙
,当使用手机端微信扫描这个二维码后,会自动访问该网址,并将登录信息发送至服务器。服务器接收到登录信息后,就完成了网页端的登录操作。
扫描后打开主页
微信的公众平台二维码和个人二维码类似。
都是包含了同样格式的网址 http://weixin.qq.com/r/密匙
,当微信扫描后,会自动读取该用户或公众平台的信息,提示用户进行关注。
另一种方式
除了类似微信的处理方法之外,还有另一种应用方式:
生成的二维码图片内容不再包含网址,而是一串格式化文本,形如
操作代码+间隔符号+密匙
例如
A:5C73EB9ED98D4ED542F2406C09279FDDBC1CE4BE
DO@SnVzdFppeWE=
……
当程序读取内容后,根据内置的判断条件去执行相应的操作,如A是「访问指定网址」、B是「显示指定文本」等等。
总结
总结一下,二维码最基本的应用流程如图:
就是简单的 将内容放入二维码 -> 读取内容之后显示
。而常见的应用流程如图:
- 生成指定内容的二维码图片;
- 扫描图片,读取其中包含的内容;
- 根据解析得到的内容,判断程序下一步的操作,如「访问指定网址」、「显示指定文本」、「发送指定请求」等。在这个过程中,按照程序的设置不同,可能会附带手机串号、登录信息、GPS坐标等信息,一同发往服务器;
- 当操作执行完毕后,显示操作结果。