前段时间工作饱和度很高,基本上都是 996 的一个节奏,一直没有时间作出一些总结.好在现在工作算是告一段落了,也有时间对之前遇到和解决的问题作一些总结了.
在这段时间的开发中有一个 3d 球,球体上有一些同时可以匹配到的人(如图),那觉得匹配到的人都不合适,就需要换一批,所以加入了摇一摇换一批的功能.demo 点我(只在移动端有效,ios 在微信内打开才有声音)

当我拿到这个需求的时候,突然就觉得这不就是 H5 所提供的新的 api 吗,之前也一直没有 H5 摇一摇进行实战,现在终于有机会对摇一摇的 api 来实战一波了.自我觉得我代码的注释写得还比较规范,这里直接上代码了.
1 | /* |
DeviceMotionEvent
、accelerationIncludingGravity
是 h5 所提供的摇一摇的 api,详情请查看DeviceMotionEvent | MDN
vibrate
是 h5 所提供的震动 api,详情请查看Navigator.vibrate() | MDN
然后摇一摇的声音是写回调函数内的,因为我们肯定要请求成功才会给出提示音,不然提示了请求不成功就尴尬了.
可是提示音在 ios 上第一次播放无法通过代码控制,因为 safari 认为自动播放(代码控制)是不安全的,必须要有人机交互才可以播放(摇一摇难道不算人机交互?).没办法,只有在微信签名后进行播放,无论微信签名成功与否都可以触发.
1 | // 这里的微信签名只是为了ios能顺利播放提示音 |
由于该项目使用的是 vue,所以只提供 vue 的代码一份,其他框架大同小异.代码地址:https://github.com/qiangqiang93/shake
[越努力,越幸运!]