当前位置:编程学习 > wap >>

iOS Safari/WebKit对DeviceMotionEvent的实现

简单地描述一下区别,后面会更详细对比:

DeviceOrientationEvent是获取方向,得到device静止时的绝对值;
DeviceMotionEvent是获取移动速度,得到device移动时相对之前某个时间的差值比。

 

--------------------------------------------------------------------------------


背景知识:

Apple官方依然只发现一个文档:

还是没例子的,自己写:


[html]
<html> 
    <head> 
       <title>DeviceMotionEvent</title> 
       <meta charset="UTF-8" /> 
    </head> 
    <body> 
        <p>x轴加速度:<span id="x">0</span>米每二次方秒</p> 
        <p>y轴加速度:<span id="y">0</span>米每二次方秒</p> 
        <p>z轴加速度:<span id="z">0</span>米每二次方秒</p> 
        <hr /> 
        <p>x轴加速度(考虑重力加速度):<span id="xg">0</span>米每二次方秒</p> 
        <p>y轴加速度(考虑重力加速度):<span id="yg">0</span>米每二次方秒</p> 
        <p>z轴加速度(考虑重力加速度):<span id="zg">0</span>米每二次方秒</p> 
        <hr /> 
        <p>左右旋转速度:<span id="alpha">0</span>度每秒</p> 
        <p>前后旋转速度:<span id="beta">0</span>度每秒</p> 
        <p>扭转速度:<span id="gamma">0</span>度每秒</p> 
        <hr /> 
        <p>上次收到通知的间隔:<span id="interval">0</span>毫秒</p> 
        <script type="text/javascript"> 
        function motionHandler(event) { 
            document.getElementById("interval").innerHTML = event.interval; 
            var acc = event.acceleration; 
            document.getElementById("x").innerHTML = acc.x; 
            document.getElementById("y").innerHTML = acc.y; 
            document.getElementById("z").innerHTML = acc.z; 
            var accGravity = event.accelerationIncludingGravity; 
            document.getElementById("xg").innerHTML = accGravity.x; 
            document.getElementById("yg").innerHTML = accGravity.y; 
            document.getElementById("zg").innerHTML = accGravity.z; 
            var rotationRate = event.rotationRate; 
            document.getElementById("alpha").innerHTML = rotationRate.alpha; 
            document.getElementById("beta").innerHTML = rotationRate.beta; 
            document.getElementById("gamma").innerHTML = rotationRate.gamma; 
        } 
         
        if (window.DeviceMotionEvent) { 
          window.addEventListener("devicemotion", motionHandler, false); 
        } else { 
          document.body.innerHTML = "What user agent u r using???"; 
        } 
        </script> 
    </body> 
</html> 

<html>
    <head>
     <title>DeviceMotionEvent</title>
    <meta charset="UTF-8" />
 </head>
 <body>
  <p>x轴加速度:<span id="x">0</span>米每二次方秒</p>
  <p>y轴加速度:<span id="y">0</span>米每二次方秒</p>
  <p>z轴加速度:<span id="z">0</span>米每二次方秒</p>
  <hr />
  <p>x轴加速度(考虑重力加速度):<span id="xg">0</span>米每二次方秒</p>
  <p>y轴加速度(考虑重力加速度):<span id="yg">0</span>米每二次方秒</p>
  <p>z轴加速度(考虑重力加速度):<span id="zg">0</span>米每二次方秒</p>
  <hr />
  <p>左右旋转速度:<span id="alpha">0</span>度每秒</p>
  <p>前后旋转速度:<span id="beta">0</span>度每秒</p>
  <p>扭转速度:<span id="gamma">0</span>度每秒</p>
  <hr />
  <p>上次收到通知的间隔:<span id="interval">0</span>毫秒</p>
  <script type="text/javascript">
  function motionHandler(event) {
   document.getElementById("interval").innerHTML = event.interval;
   var acc = event.acceleration;
   document.getElementById("x").innerHTML = acc.x;
   document.getElementById("y").innerHTML = acc.y;
   document.getElementById("z").innerHTML = acc.z;
   var accGravity = event.accelerationIncludingGravity;
   document.getElementById("xg").innerHTML = accGravity.x;
   document.getElementById("yg").innerHTML = accGravity.y;
   document.getElementById("zg").innerHTML = accGravity.z;
   var rotationRate = event.rotationRate;
   document.getElementById("alpha").innerHTML = rotationRate.alpha;
   document.getElementById("beta").innerHTML = rotationRate.beta;
   document.getElementById("gamma").innerHTML = rotationRate.gamma;
  }
  
  if (window.DeviceMotionEvent) {
    window.addEventListener("devicemotion", mo

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,