学习JavaScript之手机振动API


本文摘自PHP中文网,作者coldplay.xixi,侵删。

现代浏览器里提供的新的API越来越倾向于移动手机应用,而不是传统的桌面应用,比如JavaScript地理位置信息API。另外一个只针对手机应用的JavaScript API就是振动(Vibration) API。很明显,这个API就是允许mobile程序员使用JavaScript调用手机的振动功能,并且能设定振动的方式和时长。

相关学习推荐:javascript视频教程

判断浏览器对振动API的支持情况

一个好的习惯就是在使用之前要检查一下当前你的应用环境、浏览器是否支持振动API。下面就是检测的方法:

1

2

// Standards ftw!

var supportsVibrate = "vibrate" in navigator;

window.navigator对象里就只有一个关于振动的API:vibrate

振动API基础应用

这个navigator.vibrate函数可以接受一个数字参数,也可以接受一个数字数组,当使用数组参数时,奇数位的数值是震动秒数,偶数位为等待秒数。

1

2

3

4

5

6

// 振动1秒

navigator.vibrate(1000);

 

// 振动多次

// 参数分别是震动3秒,等待2秒,然后振动1秒

navigator.vibrate([3000, 2000, 1000]);

如果想停止震动,你只需要向navigator.vibrate方法里传入0,或一个空数组:

1

2

3

// 停止振动

navigator.vibrate(0);

navigator.vibrate([]);

需要提醒的是,对navigator.vibrate方法的调用并不会引起手机循环振动;当参数是一个数字时,振动之后发生一次,然后就停止下来。当参数是数组时,震动会按数组里的值震动,然后就停止振动。

持续震动

我们可以简单的使用setIntervalclearInterval 方法产生让手机持续震动的效果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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的感觉如何?是认为它会很快流行起来?还是没有多大用处?

以上就是学习JavaScript之手机振动API的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript之 这次彻底搞懂new操作符!

12个精致炫酷的背景装饰特效库(分享)

javascript是什么类型的语言

javascript如何获取字符串长度

angularjs的ng-bind-html指令详解

了解javascript中的对象原型和原型链

javascript分为哪两种数据类型

javascript如何求最小值

javascript主要作用是什么

javascript怎么删除类

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...