為了更好地為行動裝置服務,HTML5推出了一系列針對行動裝置的API。
Geolocation介面用於取得使用者的地理位置。它使用的方法是基於GPS或其他機制(如IP位址、WIFI熱點等)。
下面的方法,可以檢查瀏覽器是否支援這個介面。
if (navigator.geolocation) { // 支持} else { //不支持}
getCurrentPosition方法,用來取得使用者的地理位置。使用它需要得到使用者的授權,瀏覽器會跳出一個對話框,詢問使用者是否許可當前頁面取得他的地理位置。必須考慮兩種情況的回呼函數:一種是同意授權,另一種是拒絕授權。如果使用者拒絕授權會拋出一個錯誤。
navigator.geolocation.getCurrentPosition(geoSuccess, geoError);
上面程式碼指定了處理目前位址位置的兩個回呼函數。
如果使用者同意授權,就會呼叫geoSuccess。
function geoSuccess(event) { var coords = event.coords; console.log('latitude: ' + coords.latitude); //纬度 console.log('longitude: ' + coords.longitude); //经度 console.log('accuracy: ' + coords.accuracy); //精度 console.log('altitude: ' + coords.altitude); //海拔 console.log('altitudeAccuracy: ' + coords.altitudeAccuracy); //海拔精度(单位:米) console.log('heading: ' + coords.heading); //以360度表示的方向 console.log('speed: ' + coords.speed); //每秒的速度(单位:米)}
geoSuccess的參數是一個event物件。 event.coords屬性指向一個對象,包含了使用者的位置訊息,主要是以下幾個值:
coords.latitude:緯度
#coords.longitude:經度
coords.accuracy:精確度
function geoError(event) { console.log('Error code ' + event.code + '. ' + event.message); }
var option = { enableHighAccuracy: true, timeout: Infinity, maximumAge: 0}; navigator.geolocation.getCurrentPosition(geoSuccess, geoError, option);
快取資料
的最大毫秒數。如果設為0,客戶端不讀取快取;如果設為infinity,客戶端只會讀取快取。
1.2 watchPosition方法和clearWatch方法
watchPosition方法可以用來監聽使用者位置的持續改變,使用方法與getCurrentPosition方法一樣。 var watchID = navigator.geolocation.watchPosition(geoSuccess, geoError);
如果要取消監聽,則使用clearWatch方法。
navigator.geolocation.clearWatch(watchID);
2、Vibration APIVibration介面用於在瀏覽器中發出指令,使得裝置振動。由於此操作很耗電,在低電量時最好取消此操作。
###使用下面的程式碼檢查該介面是否可用。目前,只有Chrome和Firefox的Android平台最新版本支援它。 ############navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;if (navigator.vibrate) { // 支持}
navigator.vibrate(1000);
navigator.vibrate([500, 300, 500]);
navigator.vibrate(0);
当移动设备的亮度传感器,感知外部亮度发生显著变化时,会触发devicelight事件。目前,只有Firefox布署了这个API。
window.addEventListener('devicelight', function(event) { console.log(event.value + 'lux'); })
下面代码表示,devicelight事件的回调函数,接受一个事件对象作为参数。该对象的value属性就是亮度值。
这种API的一种应用是,我们可以针对亮度的强弱来改网页背景和文字颜色。
以上是HTML5新特性之行動裝置API的詳細內容。更多資訊請關注PHP中文網其他相關文章!