移动设备API
1、Permission API
用来查询某个接口的许可情况
// 查询地理位置接口的许可情况
navigator.permissions.query({ name: 'geolocation' })
.then(function(result) {
// 状态为 prompt,表示查询地理位置时,
// 用户会得到提示,是否许可本次查询
/* result.status = "prompt" */
// 状态为 granted,表示用户已经给予了许可
/* result.status = "granted" */
});
2、Geolocation API
用于获取用户的地理位置
2.1 getCurrentPosition方法
navigator.geolocation.getCurrentPosition(Success,Error);
用户同意授权,就会调用Success。参数是一个event对象。event有两个属性:timestamp和coords。timestamp属性是一个时间戳,返回获得位置信息的具体时间。coords属性指向一个对象,包含了用户的位置信息
如果用户拒绝授权,就会调用getCurrentPosition方法指定的第二个回调函数Error,参数也是一个event对象。event.code属性表示错误类型
2.2 watchPosition方法和clearWatch方法
watchPosition方法可以用来监听用户位置的持续改变
var watchID = navigator.geolocation.watchPosition(Success,Error);
使用方法和 getCurrentPosition一样,但watchPosition方法返回的标识符,用于供clearWatch方法取消监听。
navigator.geolocation.clearWatch(watchID);
3、Vibration API
vibrate方法可以使得设备振动,它的参数就是振动持续的毫秒数。
navigator.vibrate(1000);
当参数是数组时
navigator.vibrate([300, 200, 400]);
表示设备先震动300毫秒,停止200毫秒后再震动400毫秒
vibrate是一个非阻塞式的操作,即手机振动的同时,JavaScript代码继续向下运行。要停止振动,只有将0毫秒或者一个空数组传入vibrate方法。
navigator.vibrate(0);
navigator.vibrate([]);
如果要让振动一直持续,可以使用setInterval不断调用vibrate
4、Orientation API
用于检测手机的摆放方向(竖放或横放)。
一旦设备的方向发生变化,会触发deviceorientation事件,可以对该事件指定回调函数。
window.addEventListener("deviceorientation", callback);
回调函数的event对象的三个属性就对应这x、y、z轴的旋转角度。