PhoneGap API介紹:Compass
方法:
參數(shù):
獲取羅盤的當前朝向。
簡單的范例:
- navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);
說明:
羅盤是一個檢測設備方向或朝向的傳感器,使用度作為衡量單位,取值范圍從0度到359.99度。
通過compassSuccess回調(diào)函數(shù)返回羅盤朝向數(shù)據(jù)
支持的平臺:
Android
iPhone
簡單的范例:
- function onSuccess(heading) {
- alert('Heading: ' + heading);
- }
- function onError() {
- alert('onError!');
- }
- navigator.compass.getCurrentHeading(onSuccess, onError);
完整的范例:
- <!DOCTYPE html>
- <html>
- <head>
- <title>Compass Example</title>
- <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
- <script type="text/javascript" charset="utf-8">
- // 等待加載PhoneGap
- document.addEventListener("deviceready", onDeviceReady, false);
- // PhoneGap加載完畢
- function onDeviceReady() {
- navigator.compass.getCurrentHeading(onSuccess, onError);
- }
- // onSuccess: 返回當前的朝向數(shù)據(jù)
- function onSuccess(heading) {
- alert('Heading: ' + heading);
- }
- // onError: 返回朝向數(shù)據(jù)失敗
- function onError() {
- alert('onError!');
- }
- </script>
- </head>
- <body>
- <h1>Example</h1>
- <p>getCurrentHeading</p>
- </body>
- </html>
在固定的時間間隔獲取羅盤朝向的角度。
- var watchID = navigator.compass.watchHeading(compassSuccess,
- compassError, [compassOptions]);
說明:
羅盤是一個檢測設備方向或朝向的傳感器,使用度作為衡量單位,取值范圍從0度到359.99度。
compass.watchHeading每隔固定時間就獲取一次設備的當前朝向。每次取得朝向后,headingSuccess回調(diào)函數(shù)會被執(zhí)行。通過compassOptions對象的frequency參數(shù)可以設定以毫秒為單位的時間間隔。
返回的watch ID是羅盤監(jiān)視周期的引用,可以通過compass.clearWatch調(diào)用該watch ID以停止對羅盤的監(jiān)視。
支持的平臺:
Android
iPhone
簡單的范例:
- function onSuccess(heading) {
- var element = document.getElementById('heading');
- element.innerHTML = 'Heading: ' + heading;
- }
- function onError() {
- alert('onError!');
- }
- var options = { frequency: 3000 }; //每隔3秒更新一次
- var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
完整的范例:
- <!DOCTYPE html>
- <html>
- <head>
- <title>Compass Example</title>
- <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
- <script type="text/javascript" charset="utf-8">
- // watchID 是當前“watchHeading”的引用
- var watchID = null;
- // 等待加載PhoneGap
- document.addEventListener("deviceready", onDeviceReady, false);
- // PhoneGap加載完畢
- function onDeviceReady() {
- startWatch();
- }
- // 開始監(jiān)視羅盤
- function startWatch() {
- // 每隔3秒鐘更新一次羅盤的朝向信息
- var options = { frequency: 3000 };
- watchID = navigator.compass.watchHeading(onSuccess, onError, options);
- }
- // 停止監(jiān)視羅盤
- function stopWatch() {
- if (watchID) {
- navigator.compass.clearWatch(watchID);
- watchID = null;
- }
- }
- // onSuccess: 返回羅盤的當前朝向
- function onSuccess(heading) {
- var element = document.getElementById('heading');
- element.innerHTML = 'Heading: ' + heading;
- }
- // onError: 獲取羅盤朝向失敗
- function onError() {
- alert('onError!');
- }
- </script>
- </head>
- <body>
- <div id="heading">Waiting for heading...</div>
- <button onclick="startWatch();">Start Watching</button>
- <button onclick="stopWatch();">Stop Watching</button>
- </body>
- </html>
停止watch ID參數(shù)指向的羅盤監(jiān)視。
- navigator.compass.clearWatch(watchID);
watchID: 由compass.watchHeading返回的引用標示。
支持的平臺:
Android
iPhone
簡單的范例:
- var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
- // ... 后繼處理 ...
- navigator.compass.clearWatch(watchID);
完整的范例:
- <!DOCTYPE html>
- <html>
- <head>
- <title>Compass Example</title>
- <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
- <script type="text/javascript" charset="utf-8">
- // watchID是當前 “watchHeading” 的引用
- var watchID = null;
- // 等待加載PhoneGap
- document.addEventListener("deviceready", onDeviceReady, false);
- // PhoneGap加載完畢
- function onDeviceReady() {
- startWatch();
- }
- // 開始監(jiān)視羅盤
- function startWatch() {
- // 每隔3秒鐘更新一次羅盤數(shù)據(jù)
- var options = { frequency: 3000 };
- watchID = navigator.compass.watchHeading(onSuccess, onError, options);
- }
- // 停止監(jiān)視羅盤
- function stopWatch() {
- if (watchID) {
- navigator.compass.clearWatch(watchID);
- watchID = null;
- }
- }
- // onSuccess: 返回羅盤的當前朝向
- function onSuccess(heading) {
- var element = document.getElementById('heading');
- element.innerHTML = 'Heading: ' + heading;
- }
- // onError: 獲取羅盤朝向失敗
- function onError() {
- alert('onError!');
- }
- </script>
- </head>
- <body>
- <div id="heading">Waiting for heading...</div>
- <button onclick="startWatch();">Start Watching</button>
- <button onclick="stopWatch();">Stop Watching</button>
- </body>
- </html>
提供羅盤朝向信息的onSuccess回調(diào)函數(shù)。
- function(heading) {
- // 進一步處理
- }
參數(shù):
heading:在某一時刻的羅盤朝向角度 (從0度到359.99度之間)。(數(shù)字類型)
范例:
- function onSuccess(heading) {
- alert('Heading: ' + heading);
- }
羅盤方法的onError回調(diào)函數(shù)。
- function() {
- // 錯誤處理
- }
定制檢索羅盤朝向的可選參數(shù)。
選項:
frequency:多少毫秒獲取一次羅盤朝向。(數(shù)字類型)(默認值:100)