二维码签到

飞信的那一块终于搞定了,难的不是Fetion API的调用,而是页面展示时的后台交互。原始的想法是填写好基本的信息后点击发送按钮,执行Ajax,并将最终成败的结果显示在页面上,不去刷新页面。

基本信息的填写用的是<form>表单,action是最头疼的一个属性,点击submit按钮会跳转到action所指向的页面。action本是提交表单请求处理的模块部分,考虑用onsubmit = 某一函数来代替,但没有action的结果是刷新了当前的页面,并不能满足不去刷新的要求。

苦恼之时,想到了html的<iframe>标签,那会创建包含另外一个文档的内联框架,设置其style的display为none,name是

里target所指向的名称,原理就是让表单提交,刷新页是iframe,巧妙地躲避了原来页面的刷新。

<form>表单页面本身就是通过点击send_to_myself请求到的页面,而action还需要请求另外的一个页面,也就是具体发送消息的模块页面,这个页面被请求后直接执行了,并没有返回什么结果,这也就无法判断输入的密码与配置文件里的密码是否一致,不能在前台页面上给出具体执行的结果。

send_to_myself是给我自己使用的,password需要与配置文件里的一致才会执行发送命令。user_to_user可以给所有飞信用户使用,输入自己的手机号,飞信密码,接收者的手机号,以及具体的信息内容。调用的PHPFetion类库不会判断用户的密码是否正确,用户是否是飞信用户,也不会判断接收者是否是用户的好友,答案为“否”的结果就是消息不能发出去。

这一部分的功能经过了多次的测试,自己给自己发送消息,平均会经过1.2s到达手机,200多字是没有问题的,字数太多会发不出去的。也测试过成功给自己的飞信好友发消息,当然用户不用担心密码泄露,因为那些<form>信息我没写入文件或者数据库,所以用户可以放心使用了。

QRcode即二维码,是一种二维记录信息的图片,可以记录网址,手机号码,短信,名片等等。扫描记录网网址的二维码可以直接通过浏览器打开网站,手机号码的则可以直接转到拨号页面,短息的同样如此,直接点击发送按钮就行了,方便而又快捷。QR码是方形的,大小从2121到177177,每次递增四个像素点,每个配置被称为一个等级,长和宽越大,存储的信息越多。等级为1的QR码长宽为21个像素,最多存储25个字符;等级为2的QR码长宽为25个像素,最多存储47个字符;每增加一个等级,长宽增加4个像素,即(V-1)* 4 + 21。

自己网站的二维码已经在QRcode->my_QRcode里展示了,想和上面的fetion一样,让用户自己创建自己的二维码。具体将在create_your_QRcode部分展示,可以实现扫描后直接给某人发短信,生成自己的名片等等。

想到二维码的功能如此强大,何不将它在其它地方发挥出来,比如扫描二维码签到。想到可以在会议活动的现场直接扫描二维码完成签到的过程,避免了繁琐的人工忙碌,而且可以通过后台的数据库统计,分析出还有哪些人没有到。

去百度了一下,果然这种想法已经得到了应用,“二维码签到”已经成功在众多大型会议上使用。目前头脑里有两种想法,一种是每个人在参会之前获得自己的二维码,会场上工作人员用扫描仪器扫描,录入数据库,对比得出具体的到场情况。另一种是会场生成一张二维码,参会人员自己通过手机扫描改二维码,从而登记入场。前者可能前期会比较繁琐,根据每个参会人员的信息生成不同的二维码,通过彩信的形式发给参会人员,到场时参会人员只要打开彩信就行了。通过手机一个个发送彩信的话明显不太现实,需要web端能够批量处理。后者的话,重要的是每个参会人员扫描的处理,怎样获取扫描者的信息?扫描了那张二维码获取手机号?如果可以的话,就能根据手机号对比出姓名等信息。两种方式各有优劣吧,还要再考虑考虑。

后者还可以应用到投票中,自己之前有想过怎样通过编辑选手的号码,发送到某一个平台上进行投票,类似于电视综艺节目里的为你喜爱的选手投票吧。如果将二维码运用到投票中的话,观众只需扫描自己喜欢的选手二维码就可进行投票。除此之外,扫描二维码签到还可以代替上课点名,老师上课前直接将该堂课的二维码展示在屏幕上,学生扫一扫就行了,再增加一个强制关闭手机应用,只剩电话短信基本功能,就像“我要早睡”软件里的一样,一堂课的时间到了之后再开启,这样的话就不用担心学生上课玩手机不认真听讲了。既解决了签到问题,又能让学生专心听讲,真是不错的想法。二维码的应用还有很多吧,扫一扫就能下软件,扫一扫就能知道附近有什么好吃的,有什么好玩的地方。

Just a beginner.<br /><a href='https://github.com/yaoshanliang/about' target='_blank'>profile</a>