1. 程式人生 > >HTML5+規範:accelermeter(管理裝置加速度感測器)

HTML5+規範:accelermeter(管理裝置加速度感測器)

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

1、方法

1.1、getCurrentAcceleration: 獲取當前裝置的加速度資訊

    void plus.accelerometer.getCurrentAcceleration( successCB, errorCB );

說明:加速度是裝置在當前方向上所做相對運動變化(增、減量)的運動感測器。加速度資訊包括x、y、z三個方向的資訊。 加速度資訊可通過successCB回撥函式返回。加速度資訊獲取失敗則呼叫回撥函式errorCB。

引數:

successCB: ( AccelerometerSuccessCallback ) 必選 獲取裝置加速度資訊成功回撥函式

errorCB: ( AccelerometerErrorCallback ) 可選 獲取裝置加速度資訊失敗回撥函式

返回值:void : 無

示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Accelerometer Example</title>
<script type="text/javascript">
// 監聽plusready事件  
document.addEventListener( "plusready", function(){
// 擴充套件API載入完畢,現在可以正常呼叫擴充套件API
plus.accelerometer.getCurrentAcceleration( function( a ) {
alert( "Acceleration\nx:" + a.xAxis + "\ny:" + a.yAxis + "\nz:" + a.zAxis );
} );
}, false );
</script>
</head>
<body>
</body>
</html>


1.2、watchAcceleration: 監聽裝置加速度變化資訊

    Number plus.accelerometer.watchAcceleration( successCB, errorCB, option )

說明:加速度是裝置在當前方向上所做相對運動變化(增、減量)的運動感測器。加速度資訊包括x、y、z三個方向的資訊。 watchAcceleration每隔固定時間就獲取一次裝置的加速度資訊,通過successCB回撥函式返回。可通過option的frequency引數設定獲取裝置加速度資訊的時間間隔。 加速度資訊獲取失敗則呼叫回撥函式errorCB。

引數:

successCB: ( AccelerometerSuccessCallback

) 必選 成功回撥函式,當獲取裝置的加速度資訊成功時回撥,並返回加速度資訊。

errorCB: ( AccelerometerErrorCallback ) 可選 失敗回撥函式,當獲取裝置加速度資訊失敗回撥函式,並返回錯誤資訊。

options: ( AccelerometerOption ) 可選 加速度資訊引數,監聽裝置加速度資訊的引數,如更新資料的頻率等。

返回值:Number : 用於標識加速度資訊監聽器,可通過clearWatch方法取消監聽。

示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Accelerometer Example</title>
<script type="text/javascript">
// 監聽plusready事件  
document.addEventListener( "plusready", function(){
// 擴充套件API載入完畢,現在可以正常呼叫擴充套件API
var acc = document.getElementById("acc");
plus.accelerometer.watchAcceleration( function ( a ) {
acc.innerText =  "x:" + a.xAxis + "\ny:" + a.yAxis + "\nz:" + a.zAxis;
}, function ( e ) {
alert( "Acceleration error: " + e.message );
} );
}, false );
</script>
</head>
<body>
Acceleration:<br/>
<p id="acc"></p>
</body>
</html>


1.3、clearWatch: 關閉監聽裝置加速度資訊

     void plus.accelerometer.clearWatch( watchId );

說明:關閉監聽裝置加速度資訊,應用關閉呼叫watchAcceleration方法的開啟的監聽操作。

引數:

watchId: ( Number ) 必選 需要取消的加速度監聽器標識,呼叫watchAcceleration方法的返回值。

返回值:void : 無

示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Accelerometer Example</title>
<script type="text/javascript">
var wid = null;
// 監聽plusready事件  
document.addEventListener( "plusready", function(){
// 擴充套件API載入完畢,現在可以正常呼叫擴充套件API
var acc = document.getElementById("acc");
wid = plus.accelerometer.watchAcceleration( function ( a ) {
acc.innerText =  "x:" + a.xAxis + "\ny:" + a.yAxis + "\nz:" + a.zAxis;
}, function ( e ) {
alert( "Acceleration error: " + e.message );
} );
}, false );
function cancel() {
plus.accelerometer.clearWatch( wid );
wid = null;
}
</script>
</head>
<body>
Acceleration:<br/>
<p id="acc"></p><br/>
<button onclick="cancel()">Cancel</button>
</body>
</html>


2、物件

2.1、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軸方向的加速度,浮點型資料,與物理學中的加速度值一致。

示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Accelerometer Example</title>
<script type="text/javascript">
// 監聽plusready事件  
document.addEventListener( "plusready", function(){
// 擴充套件API載入完畢,現在可以正常呼叫擴充套件API
var acc = document.getElementById("acc");
plus.accelerometer.watchAcceleration( function ( a ) {
acc.innerText =  "x:" + a.xAxis + "\ny:" + a.yAxis + "\nz:" + a.zAxis;
}, function ( e ) {
alert( "Acceleration error: " + e.message );
} );
}, false );
</script>
</head>
<body>
Acceleration:<br/>
<p id="acc"></p>
</body>
</html>


2.2、AccelerometerOption: 監聽裝置加速度感應器引數

interface Acceleration {

readonly attribute DOMString frequency;

}

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

屬性:frequency: (Number 型別 )更新加速度資訊間隔時間,監聽器獲取加速度資訊的時間間隔,單位為ms,預設值為500ms

示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Accelerometer Example</title>
<script type="text/javascript">
// 監聽plusready事件  
document.addEventListener( "plusready", function(){
// 擴充套件API載入完畢,現在可以正常呼叫擴充套件API
var acc = document.getElementById("acc");
plus.accelerometer.watchAcceleration( function ( a ) {
acc.innerText =  "x:" + a.xAxis + "\ny:" + a.yAxis + "\nz:" + a.zAxis;
}, function ( e ) {
alert( "Acceleration error: " + e.message );
}, {frequency:1000} ); // 設定更新間隔時間為1s
}, false );
</script>
</head>
<body>
Acceleration:<br/>
<p id="acc"></p>
</body>
</html


3、回撥方法

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

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

引數:

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

返回值:void : 無

示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Accelerometer Example</title>
<script type="text/javascript">
// 監聽plusready事件  
document.addEventListener( "plusready", function(){
// 擴充套件API載入完畢,現在可以正常呼叫擴充套件API
var acc = document.getElementById("acc");
plus.accelerometer.watchAcceleration( function ( a ) {
acc.innerText =  "x:" + a.xAxis + "\ny:" + a.yAxis + "\nz:" + a.zAxis;
}, function ( e ) {
alert( "Acceleration error: " + e.message );
} );
}, false );
</script>
</head>
<body>
Acceleration:<br/>
<p id="acc"></p>
</body>
</html>


3.2、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"/>
<title>Accelerometer Example</title>
<script type="text/javascript">
// 監聽plusready事件  
document.addEventListener( "plusready", function(){
// 擴充套件API載入完畢,現在可以正常呼叫擴充套件API
var acc = document.getElementById("acc");
plus.accelerometer.watchAcceleration( function ( a ) {
acc.innerText =  "x:" + a.xAxis + "\ny:" + a.yAxis + "\nz:" + a.zAxis;
}, function ( e ) {
alert( "Acceleration error: " + e.message );
} );
}, false );
</script>
</head>
<body>
Acceleration:<br/>
<p id="acc"></p>
</body>
</html>