几个不常用的 Web API
1. 设备震动 vibrate
Navigator.vibrate() 方法使设备(有震动硬件)产生有频率的震动。若设备不支持震动,该方法将无效。若某震动方式已经在进行中(当该方法调用时),则前一个震动方式停止,新的取而代之。
该方法若因为提供无效的参数使得无法使设备震动,它将返回false,否则返回true。若振动方案导致长时间的震动,它会被截断:最大震动时长取决于每个浏览器的具体实现。
1.1 判断设备是否支持该 API
var supportsVibrate = "vibrate" in navigator;
1.2 用法:
// 使用设备震动,参数为震动长度 单位 ms
window.navigator.vibrate(400);
// 也可以传入0或者一个全是0的数组,表示暂停震动
window.navigator.vibrate(0);
// 也可以传入一个包含数字的数组,奇数位的数值是震动秒数,偶数位为等待秒数, 比如下面这样就是代表震动300ms,暂停30ms,震动100ms,暂停30ms,震动100ms...
window.navigator.vibrate([100,30,100,30,100,200,200,30,200,30,200,200,100,30,100,30,100]); // Vibrate 'SOS' in Morse.
2. 重力感应方向控制 DeviceOrientation
deviceorientation 事件在方向传感器输出新数据的时候触发。
用法:
function fn(event){
console.log(event);
console.log(event.gamma); // alpha:设备沿着Z轴的旋转角度
console.log(event.beta); // beta:设备沿着X轴的旋转角度
console.log(event.Alpha); // gamma:设备沿着Y轴的旋转角度
}
window.addEventListener('deviceorientation', fn);
3. 网络连接和断开 Online/Offline
navigator.onLine 是一个值为 true/false (true 表示在线, false 表示离线) 的属性。
用法:
window.addEventListener('online',function(){
console.log('网络已连接!');
})
window.addEventListener('offline',function(){
console.log('网络已断开!');
})