今天突然想到一个问题,bilibili 的“用手机观看”功能使需要用户用手机客户端扫描视频页面上的二维码的。但是我平常想要用手机观看视频的时候却不是这么做的,我的做法是:

  • 在电脑上点一下这个视频,打开它,这样它就进入历史记录了
  • 打开手机客户端,进入历史观看记录,找到刚才的视频,打开观看

这样完全不需要二维码嘛!那么 B 站为什么要用二维码呢,我猜测……

  • 可能二维码中包含了其他的数据
  • 可能二维码会让客户端执行额外的操作(因为 B 站“用手机看”的按钮上面的第二行字是“离线看更方便)
  • 为了方便那些没有账号或者不用客户端观看的用户

可惜我的前两个猜想都是错的,这个二维码只是一个普通的二维码而已,它的内容是视频页面的 URL;而第三个他们是绝对不会支持的。这么看来,B 站使用二维码的原因只能人们已经习惯二维码了,时下流行的趋势而已。

拜托,你们的观看历史记录都上云了,把“用手机观看”也做成云端推送好吗?

这个思路听上去有点像 Chrome 同步“已打开的标签页”。但是 B 站客户端一次只能打开一个视频,如果在电脑上打开的视频很多,无脑把当前观看的视频推送给用户可能会造成混乱,用户想观看的视频也不一定是最后一个打开的。所以还是把选择的权力交给用户比较好,用户在某个视频的页面点击“用手机观看”之后,这个视频就会被推送到移动设备上,进入待看队列(就像阅读列表一样),这样即使用户点击了多次“用手机观看”也不必担心了。

其实,还有很多地方也不是一定要用到二维码的,尤其是那些二维码由服务器临时生成而不包含具体信息的。比如我面对面加微信好友完全可以输入对方的一串 6 位随机数字,这样似乎也可以提供一个二次验证的过程,用在面对面支付时很有用。不过这样就失去了二维码的很多优势:第一是固定性,我可以把固定的二维码当作我的个人名片使用,而动态生成的随机数字不能;第二是可机读性,二维码和条形码天生就是为机器阅读而生,而为人类设计的数字就会让机器面临 OCR 问题了。

总之,我个人是讨厌二维码的。首先,对于很多软件而言,它平白无故地多开了一个相机权限。支付宝偷拍的案例在先,人们很难不害怕这些形形色色的软件会干出来什么龌龊的事。二维码也可能带来钓鱼、劫持等问题。如果用微信之类的所谓“安全”扫码的话,这个二维码很可能就成为你的“大数据”的一部分了。其次,比较都是相对的,扫描二维码确实比输入网址和用搜索引擎更方便,但相比直接推送和同步,多了几次点击,反而更复杂了。