1. 程式人生 > >html5+ accelerometer-加速度感測器

html5+ accelerometer-加速度感測器

accelerometer 加速度感測器

Accelerometer模組管理裝置加速度感測器,用於獲取裝置加速度資訊,包括x(螢幕水平方向)、y(垂直螢幕水平方向)、z(垂直螢幕平面方向)三個方向的加速度資訊。通過plus.accelerometer獲取裝置加速度感測器管理物件。

方法:

物件:

回撥方法:

許可權:

5+功能模組(permissions)

{
// ...
"permissions":{
	// ...
	"Accelerometer": {
		"description": "加速度感測器"
	}
}
}

Acceleration

裝置加速度資訊物件

interface Acceleration
{ readonly attribute Number xAxis; readonly attribute Number yAxis; readonly attribute Number zAxis; }

說明:

JSON物件,儲存獲取裝置的加速度資訊,包括x、y、z三個方向的加速度資訊。

屬性:

  • xAxis: _(Number 型別 )_x軸方向的加速度

    獲取當前裝置x軸方向的加速度,浮點型資料,與物理學中的加速度值一致。

  • yAxis: _(Number 型別 )_y軸方向的加速度

    獲取當前裝置y軸方向的加速度,浮點型資料,與物理學中的加速度值一致。

  • zAxis: _(Number 型別 )_z軸方向的加速度

    獲取當前裝置z軸方向的加速度,浮點型資料,與物理學中的加速度值一致。

AccelerometerOption

監聽裝置加速度感應器引數

interface Acceleration {
	readonly attribute DOMString frequency;
}

說明:

JSON物件,用於設定獲取裝置加速度資訊的引數。

屬性:

  • frequency: _(Number 型別 )_更新加速度資訊間隔時間

    監聽器獲取加速度資訊的時間間隔,單位為ms,預設值為500ms

AccelerometerSuccessCallback

獲取裝置加速度資訊成功的回撥函式

void onSuccess
( acceleration ) { // Get acceleration code. }

引數:

  • acceleration: 裝置的加速度資訊 Acceleration型別物件,用於獲取各方向的詳細加速度值。

返回值:

void : 無

AccelerometerErrorCallback

獲取裝置加速度資訊失敗的回撥函式

function void onAccelerometerError( Exception error ) {
	// Handle error
	var code = error.code; // 錯誤編碼
	var message = error.message; // 錯誤描述資訊
}

引數:

  • error: ( Exception ) 必選 獲取加速度操作的錯誤資訊 可通過error.code(Number型別)獲取錯誤編碼; 可通過error.message(String型別)獲取錯誤描述資訊。

返回值:

void : 無

<!DOCTYPE HTML>
<html>

	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<meta name="misapplication-tap-highlight" content="no" />
		<meta name="HandheldFriendly" content="true" />
		<meta name="MobileOptimized" content="320" />
		<title>Hello H5+</title>
		<script type="text/javascript">
			function getAcc() {
				outSet('獲取裝置當前加速度');
				plus.accelerometer.getCurrentAcceleration(function (a) {
					outLine('X軸:' + a.xAxis + '\nY軸:' + a.yAxis + '\nZ軸:' + a.zAxis);
				}, function (e) {
					outLine('獲取失敗:' + e.message);
				});
			}
			var aid = null;
			function watchAcc() {
				if (aid) {
					return;
				}
				outSet('監聽裝置加速度變化');
				aid = plus.accelerometer.watchAcceleration(function (a) {
					outSet('監聽裝置加速度變化\n' + 'X軸:' + a.xAxis + '\nY軸:' + a.yAxis + '\nZ軸:' + a.zAxis);
				}, function (e) {
					outLine('監聽失敗:' + e.message);
				});
			}
			function watchStop() {
				if (aid) {
					outSet('停止監聽裝置加速度變化');
					plus.accelerometer.clearWatch(aid);
					aid = null;
				} else {
					outSet('沒有監聽裝置加速度變化');
				}
			}
		</script>
	</head>
	<body>
		<div id="dcontent" class="dcontent">
			<ul class="dlist">
				<li class="ditem" onclick="getAcc()">獲取裝置當前加速度</li>
				<li class="ditem" onclick="watchAcc()">監聽裝置加速度變化 </li>
				<li class="ditem" onclick="watchStop()">停止監聽裝置加速度變化</li>
			</ul>
		</div>
		<div id="output">
			Accelerometer可獲取裝置加速度感測器資訊,包括x軸(螢幕水平方向)、y軸(垂直螢幕水平方向)、z軸(垂直螢幕平面方向)三個方向的加速度資訊。
		</div>
	</body>

</html>