您的位置:首页 > 移动开发 > IOS开发

二维码背后的故事

2017-02-22 22:03 197 查看


实验室的事



最普通的二维码

前一段时间,工作中碰到一件趣事,我们和某智能家居厂商合作开发时,对方提供的摄像头的二维码被摸得比较模糊,很难再扫描成功了。老大颇为恼怒:你们怎么这么不注意?在外面贴个胶纸嘛!以后摄像头不许再拿起来用了!

开发测试的同事也颇为无奈,这摄像头不拿起来很难测试;再说了,人家二维码都是印刷的,用很久都没影响,就你贴个小纸条......



谁碰上谁倒霉

当时基本上扫好几分钟才能扫到这个二维码,而且摄像头一般的手机根本没效果。老大也死心了,准备把摄像头发回厂商去,只是一来一回很麻烦。

我有天到实验室,就跟他们说,二维码不就是字符串吗?趁着现在还能扫描上,把那个字符串提取出来,重新生成二维码不就行了?开发老大马上为我点赞,拿着6s折腾了一会,算是成功了。而且如我所料,扫描自己生成的二维码也能用摄像头了。后来我把生成的二维码发到群里,就没有后顾之忧了。


二维码背后到底写的啥?

后来去查了一下,说二维码都是字符串实质上是不准确的。二维码存储的是少量的信息,其实它甚至可以存储极小的图片或视频的。但是那样二维码可能变得密密麻麻了,扫描也变得困难。

一般二维码存储的字符串都是不怎么长的,短的十多个字节,长的可达一百多字节。一时兴起就研究了一下一些常用的二维码到底代表什么。

当我用简书分享到微信的时候,得到的字符串是这样的:
http://www.jianshu.com/p/f7823b390cdb?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=weixin


里面包含了网址,操作类型,来源去向等信息。

而当我在某网站使用QQ登录的时候,字符串出乎预料的短:
http://txz.qq.com/p?k=Z3TjEaBMgTMssDPpQBU3Rs-GsOYOZSKo&f=21000106


中间的内容没仔细探究,看起来可能是简单加密过的。

新浪微博登录就纠结了:
http://open.weibo.cn/oauth2/qrcode_authorize?client_id=2601122390&redirect_uri=https%3A%2F%2Fpassport.csdn.net%2Faccount%2Flogin%3Foauth_provider%3DSinaWeiboProvider&scope=&response_type=code&state=&vcode=b6412c4134f4e5cd0b3da9879337241b&frwbqr=50


反正参数是蛮多的,看得我都怀疑是不是超出了一般扫描器的范围。

当我设计规范的时候,有时候虽然一些参数意义不大,但是总有少数情况是需要包括的。像QQ登录那样的字符串反而显得很不正常。不过通过二维码的解析,可以看出这些大企业在一些步骤的思考和规范,是能稍稍借鉴一下的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二维码 IOS