PhoneGap API介绍:Compass

移动开发
本文将介绍PhoneGap API——Compass:获取设备指向的方向。Compass可以获得该设备的当前朝向。

方法

参数

compass.getCurrentHeading

获取罗盘的当前朝向。

简单的范例

  1. navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions); 

说明

罗盘是一个检测设备方向或朝向的传感器,使用度作为衡量单位,取值范围从0度到359.99度。

通过compassSuccess回调函数返回罗盘朝向数据

支持的平台

Android

iPhone

简单的范例

  1. function onSuccess(heading) { 
  2. alert('Heading: ' + heading); 
  3. function onError() { 
  4. alert('onError!'); 
  5. navigator.compass.getCurrentHeading(onSuccess, onError); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title>Compass Example</title> 
  5.      
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.      
  9.     // 等待加载PhoneGap 
  10.     document.addEventListener("deviceready", onDeviceReady, false); 
  11.      
  12.     // PhoneGap加载完毕 
  13.     function onDeviceReady() { 
  14.         navigator.compass.getCurrentHeading(onSuccess, onError); 
  15.     } 
  16.      
  17.     // onSuccess: 返回当前的朝向数据 
  18.     function onSuccess(heading) { 
  19.         alert('Heading: ' + heading); 
  20.     } 
  21.      
  22.     // onError: 返回朝向数据失败 
  23.     function onError() { 
  24.         alert('onError!'); 
  25.     } 
  26.      
  27. </script> 
  28. </head> 
  29. <body> 
  30.     <h1>Example</h1> 
  31.     <p>getCurrentHeading</p> 
  32. </body> 
  33. </html> 

 

compass.watchHeading

在固定的时间间隔获取罗盘朝向的角度。

  1. var watchID = navigator.compass.watchHeading(compassSuccess, 
  2. compassError, [compassOptions]); 

说明

罗盘是一个检测设备方向或朝向的传感器,使用度作为衡量单位,取值范围从0度到359.99度。

compass.watchHeading每隔固定时间就获取一次设备的当前朝向。每次取得朝向后,headingSuccess回调函数会被执行。通过compassOptions对象的frequency参数可以设定以毫秒为单位的时间间隔。

返回的watch ID是罗盘监视周期的引用,可以通过compass.clearWatch调用该watch ID以停止对罗盘的监视。

支持的平台

Android

iPhone

简单的范例

  1. function onSuccess(heading) { 
  2. var element = document.getElementById('heading'); 
  3. element.innerHTML = 'Heading: ' + heading; 
  4. function onError() { 
  5. alert('onError!'); 
  6. var options = { frequency: 3000 }; //每隔3秒更新一次 
  7. var watchID = navigator.compass.watchHeading(onSuccess, onError, options); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title>Compass Example</title> 
  5.      
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.      
  9.     // watchID 是当前“watchHeading”的引用 
  10.     var watchID = null
  11.      
  12.     // 等待加载PhoneGap 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap加载完毕 
  16.     function onDeviceReady() { 
  17.         startWatch(); 
  18.     } 
  19.      
  20.     // 开始监视罗盘 
  21.     function startWatch() { 
  22.      
  23.         // 每隔3秒钟更新一次罗盘的朝向信息 
  24.         var options = { frequency: 3000 }; 
  25.             
  26.         watchID = navigator.compass.watchHeading(onSuccess, onError, options); 
  27.     } 
  28.      
  29.     // 停止监视罗盘 
  30.     function stopWatch() { 
  31.         if (watchID) { 
  32.             navigator.compass.clearWatch(watchID); 
  33.             watchID = null
  34.         } 
  35.     } 
  36.      
  37.     // onSuccess: 返回罗盘的当前朝向 
  38.     function onSuccess(heading) { 
  39.         var element = document.getElementById('heading'); 
  40.         element.innerHTML = 'Heading: ' + heading; 
  41.     } 
  42.      
  43.     // onError: 获取罗盘朝向失败 
  44.     function onError() { 
  45.         alert('onError!'); 
  46.     } 
  47.      
  48. </script> 
  49. </head> 
  50. <body> 
  51.     <div id="heading">Waiting for heading...</div> 
  52.     <button onclick="startWatch();">Start Watching</button> 
  53.     <button onclick="stopWatch();">Stop Watching</button> 
  54. </body> 
  55. </html> 

compass.clearWatch

停止watch ID参数指向的罗盘监视。

  1. navigator.compass.clearWatch(watchID); 

watchID: 由compass.watchHeading返回的引用标示。

支持的平台

Android

iPhone

简单的范例

  1. var watchID = navigator.compass.watchHeading(onSuccess, onError, options); 
  2. // ... 后继处理 ... 
  3. navigator.compass.clearWatch(watchID); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title>Compass Example</title> 
  5.      
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.      
  9.     // watchID是当前 “watchHeading” 的引用 
  10.     var watchID = null
  11.      
  12.     // 等待加载PhoneGap 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap加载完毕 
  16.     function onDeviceReady() { 
  17.         startWatch(); 
  18.     } 
  19.      
  20.     // 开始监视罗盘 
  21.     function startWatch() { 
  22.         
  23.         // 每隔3秒钟更新一次罗盘数据 
  24.         var options = { frequency: 3000 }; 
  25.      
  26.         watchID = navigator.compass.watchHeading(onSuccess, onError, options); 
  27.     } 
  28.      
  29.     // 停止监视罗盘 
  30.     function stopWatch() { 
  31.         if (watchID) { 
  32.             navigator.compass.clearWatch(watchID); 
  33.             watchID = null
  34.         } 
  35.     } 
  36.      
  37.     // onSuccess: 返回罗盘的当前朝向 
  38.     function onSuccess(heading) { 
  39.         var element = document.getElementById('heading'); 
  40.         element.innerHTML = 'Heading: ' + heading; 
  41.     } 
  42.      
  43.     // onError: 获取罗盘朝向失败 
  44.     function onError() { 
  45.         alert('onError!'); 
  46.     } 
  47.      
  48. </script> 
  49. </head> 
  50. <body> 
  51.     <div id="heading">Waiting for heading...</div> 
  52.     <button onclick="startWatch();">Start Watching</button> 
  53.     <button onclick="stopWatch();">Stop Watching</button> 
  54. </body> 
  55. </html> 

compassSuccess

提供罗盘朝向信息的onSuccess回调函数。

  1. function(heading) { 
  2. // 进一步处理 

参数

heading:在某一时刻的罗盘朝向角度 (从0度到359.99度之间)。(数字类型)

范例

  1. function onSuccess(heading) { 
  2. alert('Heading: ' + heading); 

compassError

罗盘方法的onError回调函数。

  1. function() { 
  2. // 错误处理 

compassOptions

定制检索罗盘朝向的可选参数。

选项

frequency:多少毫秒获取一次罗盘朝向。(数字类型)(默认值:100)

责任编辑:佚名 来源: PhoneGap中国
相关推荐

2011-12-30 14:09:32

PhoneGap APCompass视频

2011-12-19 16:09:32

PhoneGap APCamera

2011-12-22 09:54:40

PhoneGap APMedia

2011-12-22 09:27:36

PhoneGap APGeolocation

2011-12-19 16:26:39

PhoneGap APCapture

2011-12-22 10:33:39

PhoneGap APNotificatio

2011-12-22 10:45:32

PhoneGap APStorage

2011-12-20 15:34:55

PhoneGap APConnection

2011-12-21 21:56:45

PhoneGap APFile

2011-12-20 17:15:52

PhoneGap APEvents

2011-12-19 15:30:25

AccelerometPhoneGap AP

2011-12-20 13:32:52

PhoneGap APContacts

2011-12-20 16:09:57

PhoneGap APDevice

2011-12-30 13:47:57

PhoneGap AP视频Contacts

2011-12-30 13:59:38

PhoneGap APDevice视频

2011-12-30 14:13:05

PhoneGap APCamera视频

2011-12-30 14:05:17

PhoneGap APConnection视频

2011-12-30 14:16:02

AccelerometPhoneGap AP视频

2011-07-05 17:29:53

PhoneGapevents

2011-09-02 15:12:29

PhoneGapSencha Touc
点赞
收藏

51CTO技术栈公众号