一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情。
这一节来看 Vibration API,这同样也是一个和硬件交互相关的 API,Vibration API 是用来调用设备的振动能力的,在支持振动的设备下可以触发相关的效果。
我们可以使用 navigator.vibrate 来获取振动对象,无论设备是否支持振动我们都可以调用上面的 API,在不支持振动的设备上什么都不会发生。振动是一个持续的过程,因此我们可以为振动设置时间参数,下面来看一下具体的 API 使用。
Vibration API 没有复杂的属性和方法,它的一切行为都是通过 navigator.vibrate 函数来调用的,它支持传入的参数也很简单,可以是一个数字或数字类型的数组。举个例子:
navigator.vibrate(100);
navigator.vibrate([100]);
上面两种写法都可以实现振动 100 毫秒的效果。
这是传入一个数值时的效果,如果想实现连续多次振动,就需要传入多个值,举个例子:
navigator.vibrate([100, 200, 300]);
上面的例子实现的效果是先振动 100ms,暂停 200ms,然后再次振动 300ms,也就是说数组里面的数字是交替触发的,偶数下标对应的是振动时间,奇数对应的是休息时间,振动触发次数为 Math.ceil(arr.length / 2),设置偶数个值时最后一次休息实际上可以忽略。
一旦振动开始,系统默认会振动指定的时间之后结束,如果想提前结束就需要调用停止振动的 API。停止振动同样也是调用 navigator.vibrate,我们为其传入 0,空数组,或者内容全部是 0 的数组,这样就可以停止振动了。
关于振动 API 的内容就这么多,这类 API 大多数时候是在移动设备使用的,场景有限,了解即可。