Compass
获得该设备的当前朝向。
方法:
compass.getCurrentHeading 
获取罗盘的当前朝向。
简单的范例:
复制
navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);	
说明:
罗盘是一个检测设备方向或朝向的传感器,使用度作为衡量单位,取值范围从0度到359.99度。
通过compassSuccess回调函数返回罗盘朝向数据
支持的平台:
  • Android
  • iPhone
  • Windows Phone 7 ( Mango ) if available in hardware
简单的范例:
复制
function onSuccess(heading) {
    alert('Heading: ' + heading.magneticHeading);
};

function onError(error) {
    alert('CompassError: ' error.code);
};
	
navigator.compass.getCurrentHeading(onSuccess, onError);
完整的范例:
复制

Compass Example
	

compass.watchHeading 
在固定的时间间隔获取罗盘朝向的角度。
复制
var watchID = navigator.compass.watchHeading(compassSuccess,
					compassError, [compassOptions]);
说明:
罗盘是一个检测设备方向或朝向的传感器,使用度作为衡量单位,取值范围从0度到359.99度。
compass.watchHeading每隔固定时间就获取一次设备的当前朝向。每次取得朝向后,headingSuccess回调函数会被执行。通过compassOptions对象的frequency参数可以设定以毫秒为单位的时间间隔。
返回的watch ID是罗盘监视周期的引用,可以通过compass.clearWatch调用该watch ID以停止对罗盘的监视。
支持的平台:
  • Android
  • iPhone
  • Windows Phone 7 ( Mango ) if available in hardware
简单的范例:
复制
function onSuccess(heading) {
    var element = document.getElementById('heading');
    element.innerHTML = 'Heading: ' + heading.magneticHeading;
};

function onError(compassError) {
    alert('Compass error: ' + compassError.code);
};
	
var options = { frequency: 3000 };		//每隔3秒更新一次
	
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
完整的范例:
复制

Compass Example
	

停止watch ID参数指向的罗盘监视。
复制
navigator.compass.clearWatch(watchID);
  • watchID: 由compass.watchHeading返回的引用标示。
支持的平台:
  • Android
  • iPhone
  • Windows Phone 7 ( Mango ) if available in hardware
简单的范例:
复制
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
	
// ... 后继处理 ...
	
navigator.compass.clearWatch(watchID);
完整的范例:
复制

Compass Example
	

当罗盘至少改变一定度数时获取罗盘的朝向度数。
复制
var watchID = navigator.compass.watchHeadingFilter(compassSuccess, compassError, compassOptions);
说明:
罗盘是探测设备方向或者朝向的传感器,它的测量范围从0度到359.99度。
compass.watchHeadingFilter方法获取当设备朝向发生一个指定值的改变时设备此时的朝向。每次朝向的改变 大于或者等于某个指定值时,headingSuccess 回调函数就会被调用。特定的度数值通过compassOptions对象的 filter参数指定。
返回的watchID引用指向罗盘的监听间隔,compass.clearWatchFilter方法能使用watchID停止对罗盘改变特定度数的监听。 每次只有一个watchHeadingFilter是有效的,如果watchHeadingFilter是有效的,调用getCurrentHeading或者watchHeading 方法时会使用有效的过滤值来监听罗盘的改变。在IOS平台上这个方法比iOS制造商提供的compass.watchFilter()更加有效。
支持的平台:
  • iPhone
简单的范例:
复制
function onSuccess(heading) {
    var element = document.getElementById('heading');
    element.innerHTML = 'Heading: ' + heading.magneticHeading;
};

function onError(compassError) {
        alert('Compass error: ' + compassError.code);
};

var options = { filter: 10 }; // 当罗盘的方向改变大于或等于10度时获取通知

var watchID = navigator.compass.watchHeadingFilter(onSuccess, onError, options);
完整的范例:
复制

Compass Example
	

停止对通过watchID参数指定的罗盘的监听。
复制
navigator.compass.clearWatchFilter(watchID);
  • watchID:compass.watchHeadingFilter方法的返回值。
支持的平台:
  • iPhone
简单的范例:
复制
var watchID = navigator.compass.watchHeadingFilter(onSuccess, onError, options);
	
// ... 后继处理 ...
	
navigator.compass.clearWatchFilter(watchID);
完整的范例:
复制

Compass Example
	

compassSuccess 
通过compassHeading对象提供罗盘朝向信息的onSuccess回调函数
复制
function(heading) {
// 进一步处理
}
参数:
  • heading:朝向信息(compassHeading对象)
范例:
复制
function onSuccess(heading) {
    alert('Heading: ' + heading.magneticHeading);
};
compassError 
罗盘方法的onError回调函数。
复制
function(CompassError) { // Handle the error }
	
compassOptions 
定制检索罗盘朝向的可选参数。
选项:
  • frequency:多少毫秒获取一次罗盘朝向。(数字类型)(默认值:100)
  • filter:能够触发watchHeadingFilter success回调的罗盘改变度数(数字类型)
Android的特异情况:
  • filter参数是不支持的。
Windows Phone 7的特异情况:
  • filter参数是不支持的。
当发生错误时,一个CompassHeading 对象会被返回给compassSuccess回调函数。
属性:
说明:
CompassHeading对象通过compassSuccess回调函数返回给用户。
Android的特异情况:
iOS的特异情况:
Windows Phone 7的特异情况:
当发生错误的时候,一个CompassError对象会被返回给compassError回调函数。
属性:
常量:
说明:
当发生错误的时候,一个CompassError对象通过compassError回调函数返回给用户。