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>