JavaScript手机振动API

 更新时间:2016年06月11日 12:48:09   投稿:lijiao  
现代浏览器里提供的新的API越来越倾向于移动手机应用,这篇文章主要为大家详细介绍了JavaScript手机振动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 level
function startVibrate(duration) {
 navigator.vibrate(duration);
}

// Stops vibration
function 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 given
function startPeristentVibrate(duration, interval) {
 vibrateInterval = setInterval(function() {
 startVibrate(duration);
 }, interval);
}

上面的这段代码只是针对振动参数是一个数字的情况,如果参数是数组,你还需要计算一下它的总共持续时间,然后根据它的特征来进行循环。

使用振动(Vibration) API的场景

这个API显然是针对移动手机设备的。当开发手机WEB移动应用时,它是一个很好的警示工具,当在开发Web游戏或多媒体应用时,这个振动功能更是不可或缺的好技术。比如说,当用户在用一个手机玩你的WEB游戏时,当游戏中发生爆炸,而你让手机也跟随着振动,是不是一种很出色的用户体验?

你对这个JavaScript振动API的感觉如何?是认为它会很快流行起来?还是没有多大用处?

相关文章

  • 利用Node.js创建一个密码生成器的全步骤

    利用Node.js创建一个密码生成器的全步骤

    这篇文章主要给大家介绍了关于如何利用Node.js创建一个密码生成器的相关资料,文章将实现的步骤一步步介绍的非常详细,对大家具有也一定的参考学习价值,需要的朋友可以参考下
    2021-07-07
  • js 模仿锚点定位的实现方法

    js 模仿锚点定位的实现方法

    下面小编就为大家带来一篇js 模仿锚点定位的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JavaScript中通过prototype属性共享属性和方法的技巧实例

    JavaScript中通过prototype属性共享属性和方法的技巧实例

    这篇文章主要介绍了JavaScript中通过prototype属性共享属性和方法的技巧实例,本文直接给出一个代码实例,需要的朋友可以参考下
    2015-03-03
  • JavaScript Alert通用美化类

    JavaScript Alert通用美化类

    只有msg是必须的,后面的参数可以省略。如果中间的参数为空则在对应位置上''或者""表示(根据实际情况选择单双引号) 调用此方法须在每个使用的页面的head区域加入下面代码。
    2009-11-11
  • Javascript限制网页只能在微信内置浏览器中访问

    Javascript限制网页只能在微信内置浏览器中访问

    最近正在开发一个微信公众账号,其中有一项功能是用户发送文字消息给公众号,然后公众号返回图文消息给用户,用户再点击图文消息即可跳转到一个网页链接,在微信的内置浏览器中打开。
    2014-11-11
  • ES5新增数组的实现方法

    ES5新增数组的实现方法

    这篇文章主要介绍了ES5新增数组的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • JavaScript Math 对象常用方法总结

    JavaScript Math 对象常用方法总结

    下面小编就为大家带来一篇JavaScript Math 对象常用方法总结。小编觉得挺不错的,现在分享给大家,也给大家做个参考
    2016-04-04
  • 修改 bootstrap table 默认detailRow样式的实例代码

    修改 bootstrap table 默认detailRow样式的实例代码

    这篇文章主要介绍了修改 bootstrap table 默认detailRow样式的实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-07-07
  • 浅谈Javascript数组的使用

    浅谈Javascript数组的使用

    这篇文章主要介绍了浅谈Javascript数组的使用的相关资料,包括数组的大小,数组的遍历以及数组的一些方法,非常细致,需要的朋友可以参考下
    2015-07-07
  • js仿百度切换皮肤功能(html+css)

    js仿百度切换皮肤功能(html+css)

    这篇文章主要为大家详细介绍了JavaScript仿百度切换皮肤功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07

最新评论