摇一摇事件封装了设备的运动传感器

Posted dituicyqz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了摇一摇事件封装了设备的运动传感器相关的知识,希望对你有一定的参考价值。

微信活动页面经常有“摇一摇,拿好礼”,还有拼多多摇现金,摇一摇功能也非常常见。html5 提供的 devicemotion 事件封装了设备的运动传感器,提供设备的加速度,还提供设备自转速率。对设备运动状态进行判断,就可以实现“摇一摇”效果。

devicemotion 监听手机加速度变化的事件:

acceleration - 加速度
accelerationIncludingGravity - 重力加速度
rotationRate - 旋转速度
interval - 获取的时间间隔
摇一摇代码示例:

复制代码
var shake_threshold = 4000; //放一移动的干扰,设置一个临界值
/* 使用之前先检查浏览器是否支持 */
if(window.DeviceMotionEvent){
 /* 添加事件 */ 
 window.addEventListener('devicemotion',function(eventData){
  var acceleration =eventData.accelerationIncludingGravity;
  var curTime = new Date().getTime();
  if ((curTime-last_update)> 10) {
   var diffTime = curTime -last_update;
   last_update = curTime;
   x = acceleration.x;
   y = acceleration.y;
   z = acceleration.z;
   var speed = Math.abs(x +y + z - last_x - last_y - last_z) / diffTime * 10000;
   if (speed > SHAKE_THRESHOLD) {
    alert("摇一摇成功了!");  // Do something
   }           
  }
 })
}
复制代码

以上是关于摇一摇事件封装了设备的运动传感器的主要内容,如果未能解决你的问题,请参考以下文章

Android开发之Sensors与摇一摇

用js实现摇一摇功能

JS实现手机摇一摇功能

如何理解微信公会平台摇一摇软件中的iBeacon技术

手机端 摇一摇功能 代码实现

移动端h5摇一摇事件