楼小三
楼小三是由楼小二有感而写的小程序工具,小程序搜索”louxiaosan”即可体验
我先解释一下什么是楼小二:商业写字楼企业服务平台,为楼内企业提供一站式办公服务,提升写字楼办公效率,降低办公成本,升级办公体验的APP。其实就是写字楼进电梯前有个闸机,需要打开这个APP里的身份二维码让闸机扫码才能进入,一般是写字楼为了防止陌生人随意进入大厦,而设置的一个工具。
那么要进入大厦就得下载他的APP,打开APP要关闭一些广告弹窗,还要点开几个层级的界面才能出现二维码。如果遇到上班高峰或者午餐高峰,网络不好的情况,那就只能跟别人屁股进入了。而且提前截好二维码的图片过了一段时间又不能用。这哪里有提升效率呢?
带着疑问用解码工具扫了他的二维码,发现二维码里唯一会变的数据竟然只是一串时间戳。。。
那我写个小程序,加个定时器定时改变时间戳,生成个二维码是否可以通过呢。哈哈哈。
上码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| //设置页 //set.js Page({ sao(){ //移除本地保存的数据从新扫码 wx.removeStorage({ key: 'data', success: function (res) { console.log(res) } }) //调用小程序内置的扫码api(scanCode) wx.scanCode({ success: (res) => { //将扫到的二维码的内容保存在本地 wx.setStorage({ key:'data', data: res.result }); //跳转到二维码初始页面 wx.redirectTo({ url: '../index/index' }) } }) } })
//set.wxml <view> <button bindtap="sao" class="btn">扫一扫</button> <view class="txt"> 请先扫一扫楼小二 </view> </view>
//初始页 //index.wxml <view class="container"> <canvas style="width: 200px; height: 200px;" canvas-id="myQrcode"></canvas> <button bindtap="changeText" class="btn">刷新</button> <button bindtap="changeSet" class="btn2">设置</button> </view>
//index.js //引入小程序二维码生成的插件 import drawQrcode from '../../utils/weapp.qrcode.js' Page({ data: { //二维码需要的数据如下,字段除了电话和时间戳,其他是猜的 userId: '',// userPhone: '', userDate: '', uniId: '', }, onLoad() { //拿本地数据 wx.getStorage({ key:'data', success:(res)=>{ let myData = res.data.split("|"); this.setData({ userId: myData[0], userPhone: myData[1], uniId: myData[3], }); //执行时间戳获取方法 this.changeText(); }, fail:()=>{ //打开小程序如果没有数据会自动跳转设置页 wx.redirectTo({ url: '../set/set' }) }, }); let jishi = setInterval(() => { this.changeText(); }, 60000); },
//画二维码的方法 draw() { drawQrcode({ width: 200, height: 200, canvasId: 'myQrcode', typeNumber: -1, correctLevel: 0, text: this.data.userId + '|' + this.data.userPhone + '|' + this.data.userDate + '|' + this.data.uniId, callback(e) { console.log('e: ', e) } }) }, //获取最新的时间戳 changeText() { let myDate = Date.parse(new Date()); this.data.userDate = myDate; this.draw() }, //手动跳转设置界面 changeSet(){ wx.redirectTo({ url: '../set/set' }) }, })
|
这代码的功能就两个,扫码保存信息在本地,用本地信息生成新的二维码。
由于信息都是本地的,所以根本不担心网络问题,也不用看到心烦的广告了。
小三上线两个月后,闸机竟然换成了人脸识别系统的了,猝!