您好,欢迎访问一九零五行业门户网

javascript实现手机震动API代码

一个新的api出来了。html5 (很快)将支持用户设备振动。这明显是很有趣的事情,比如它可以用户触发提醒,提升游戏体验,下面小编给大家整理javascript手机震动api,需要的朋友可以参考下。
现代浏览器里提供的新的api越来越倾向于移动手机应用,而不是传统的桌面应用,比如 javascript地理位置信息api 。另外一个只针对手机应用的javascript api就是 振动(vibration) api 。很明显,这个api就是允许mobile程序员使用javascript调用手机的振动功能,并且能设定振动的方式和时长。
判断浏览器对振动api的支持情况
一个好的习惯就是在使用之前要检查一下当前你的应用环境、浏览器是否支持振动api。下面就是检测的方法:
代码如下:
// standards ftw!var supportsvibrate = "vibrate" in navigator;
在 window.navigator 对象里就只有一个关于振动的api: vibrate 。
振动api基础应用
这个 navigator.vibrate 函数可以接受一个数字参数,也可以接受一个数字数组,当使用数组参数时,奇数位的数值是震动秒数,偶数位为等待秒数。
// 振动1秒
navigator.vibrate(1000);
// 振动多次
// 参数分别是震动3秒,等待2秒,然后振动1秒
navigator.vibrate([3000, 2000, 1000]);
如果想停止震动,你只需要向 navigator.vibrate 方法里传入0,或一个空数组:
// 停止振动
navigator.vibrate(0);navigator.vibrate([]);
需要提醒的是,对 navigator.vibrate 方法的调用并不会引起手机循环振动;当参数是一个数字时,振动之后发生一次,然后就停止下来。当参数是数组时,震动会按数组里的值震动,然后就停止振动。
持续震动
我们可以简单的使用 setinterval 和 clearinterval 方法产生让手机持续震动的效果:
var vibrateinterval;// starts vibration at passed in levelfunction startvibrate(duration) {navigator.vibrate(duration);}// stops vibrationfunction stopvibrate() {// clear interval and stop persistent vibrating if(vibrateinterval) clearinterval(vibrateinterval);navigator.vibrate(0);}// start persistent vibration at given duration and interval// assumes a number value is givenfunction startperistentvibrate(duration, interval) {vibrateinterval = setinterval(function() {startvibrate(duration);}, interval);}
上面的这段代码只是针对振动参数是一个数字的情况,如果参数是数组,你还需要计算一下它的总共持续时间,然后根据它的特征来进行循环。
使用振动(vibration) api的场景
这个api显然是针对移动手机设备的。当开发手机web移动应用时,它是一个很好的警示工具,当在开发web游戏或多媒体应用时,这个振动功能更是不可或缺的好技术。比如说,当用户在用一个手机玩你的web游戏时,当游戏中发生爆炸,而你让手机也跟随着振动,是不是一种很出色的用户体验?
你对这个javascript振动api的感觉如何?是认为它会很快流行起来?还是没有多大用处?
以上就是本章的全部内容,更多相关教程请访问javascript视频教程,html5视频教程!
其它类似信息

推荐信息