很久没怎么更新博客了,不想写,不想弄,懒了.
今天介绍一下Compass罗盘.
Compass
获得该设备的当前朝向.罗盘是一个检测设备方向或朝向的传感器,使用度作为衡量单位,取值范围从0度到359.99度。
这个对象有几个方法:
navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);
获取罗盘的当前朝向
compass.watchHeading
var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);
在固定的时间间隔获取罗盘朝向的角度。
compass.clearWatch
navigator.compass.clearWatch(watchID);
停止watch ID参数指向的罗盘监视。
这个跟前面介绍的Accelerometer 加速器比较类似,就不详细解释了.
下面给段例子代码:
<!DOCTYPE html> <html> <head> <title>Compass Example</title> <script type="text/javascript" charset="utf-8" src="js/cordova-2.6.0.js"></script> <script type="text/javascript" charset="utf-8"> var watchID = null; // 等待Cordova加载 document.addEventListener("deviceready", onDeviceReady, false); // Cordova加载完毕 function onDeviceReady() { navigator.compass.getCurrentHeading(function(heading){ alert('Heading: ' + heading.magneticHeading); }, function(compassError){ alert('Compass Error: ' + compassError.code); }); startWatch(); } // 开始监听Compass罗盘 function startWatch() { // 每隔3秒 获取一次Compass数据 /** * options选项 * frequency:多少毫秒获取一次罗盘朝向。(数字类型)(默认值:100) * filter:能够触发watchHeadingFilter success回调的罗盘改变度数(数字类型) * filter在某些设备上不支持具体参看文档 */ var options = { frequency: 3000 }; watchID = navigator.compass.watchHeading(onSuccess, onError, options); } // 停止对Compass的监听 function stopWatch() { if (watchID) { navigator.compass.clearWatch(watchID); watchID = null; } } function onSuccess(heading) { var element = document.getElementById('heading'); element.innerHTML = 'Heading: ' + heading.magneticHeading; } function onError(compassError) { alert('Compass error: ' + compassError.code); } </script> </head> <body> <div id="heading">Waiting for heading...</div> <button onclick="startWatch();">Start Watching</button> <button onclick="stopWatch();">Stop Watching</button> </body> </html>