一、PhoneGap 加速计 Accelerometer 对象介绍
1、主要方法
accelerometer.getCurrentAcceleration 获取当前设备在 x,y,z 轴上的加速度信息
accelerometer.watchAcceleration 定期获取设备的加速度信息
accelerometer.clearWatch 停止定期获取设备的加速度信息
2、参数
accelerometerSuccess 获取加速度信息成功的回调函数
accelerometerError 获取加速度信息失败的回调函数
accelerometerOptions 一般为 json 对象,frequency 是它目前的唯一参数,以毫秒数表示,用来指定定期获取 加速度信息频率
二、获取加速度信息
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>phonegap_device_network_notification01</title> <link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/> <script src="../jquery.js" type="text/javascript"></script> <script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script> <script src="../cordova.js" type="text/javascript"></script> <script type="text/javascript" charset="utf-8"> $(function(){ //accelerometer document.addEventListener("deviceready", onDeviceReady, false); // 设备加载完成 function onDeviceReady() { //navigator.accelerometer.getCurrentAcceleration(onSuccess, onError); $('#accelerometer').click(function(){ navigator.accelerometer.getCurrentAcceleration(onSuccess, onError); }) } // 获取加速度信息成功后的回调函数 // 接收包含当前加速度信息的Acceleration对象 function onSuccess(acceleration) { alert('X轴方向的加速度: ' + acceleration.x + '\n' + 'Y轴方向的加速度: ' + acceleration.y + '\n' + 'Z轴方向的加速度: ' + acceleration.z + '\n' + '时间戳: ' + acceleration.timestamp + '\n'); } // 获取加速度信息失败后的回调函数 function onError() { alert('出错了!'); } }) // 等待PhoneGap加载 </script> </head> <body> <div data-role="page"> <div data-role="header"> <h1>PhoneGap100实战</h1> </div> <div data-role="content"> <a data-role="button" href="#" id="accelerometer">获取加速度</a> <br> <a href="#">当前的加速度值为</a> </div> <div data-role="footer"> <h4> </h4> </div> </div> </body> </html>
三、定期获取加速度信息
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>phonegap_device_network_notification01</title> <link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/> <script src="../jquery.js" type="text/javascript"></script> <script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script> <script src="../cordova.js" type="text/javascript"></script> <script type="text/javascript" charset="utf-8"> // 当前watchAcceleration的引用ID varwatchID = null; // 等待PhoneGap加载 document.addEventListener("deviceready", onDeviceReady, false); // 加载完成 function onDeviceReady() { startWatch(); } // 开始监测 function startWatch() { // 表示每隔三秒更新一次信息 var options = { frequency: 3000 }; watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); } // 停止监测 function stopWatch() { if (watchID) { navigator.accelerometer.clearWatch(watchID); watchID = null; } } // 获取加速度信息成功后的回调函数 // 接收包含当前加速度信息的Acceleration对象 function onSuccess(acceleration) { var element = document.getElementById('accelerometer'); element.innerHTML = 'X轴方向的加速度: ' + acceleration.x + '<br />' + 'Y轴方向的加速度: ' + acceleration.y + '<br />' + 'Z轴方向的加速度: ' + acceleration.z + '<br />' + '时间戳: ' + acceleration.timestamp + '<br />'; } // 获取加速度信息失败后的回调函数 function onError() { alert('onError!'); } </script> </head> <body> <div data-role="page"> <div data-role="header"> <h1>PhoneGap100实战</h1> </div> <div data-role="content"> <div id="accelerometer">监测加速度信息中...</div> <button onclick="stopWatch();">停止监测加速度信息</button> </div> <div data-role="footer"> <h4> </h4> </div> </div> </body> </html>