JS vibrate能讓手機振動的API

許多由瀏覽器廠商提供給咱們新的API接口,是專門針對移動用戶。這些簡單的API之一振動的API。振動的API容許開發者直接調用設備震動,使用JavaScript,在給定時間的振動模式。git

判斷兼容

瀏覽器對振動API的支持狀況,一個好的習慣就是在使用以前要檢查一下當前你的應用環境、瀏覽器是否支持振動API。下面就是檢測的方法:github

var supportsVibrate = "vibrate" in navigator;複製代碼

window.navigator對象裏就只有一個關於振動的API:vibrateapi

振動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方法的調用並不會引發手機循環振動;當參數是一個數字時,振動以後發生一次,而後就中止下來。當參數是數組時,震動會按數組裏的值震動,而後就中止振動。svg

持續震動

咱們能夠簡單的使用setIntervalclearInterval 方法產生讓手機持續震動的效果:函數

var vibrateInterval;

// 開始震動
function startVibrate(duration) {
    navigator.vibrate(duration);
}

// 中止震動
function stopVibrate() {
    // 清除間隔和中止持續振動
    if(vibrateInterval) clearInterval(vibrateInterval);
    navigator.vibrate(0);
}

//在給定的持續時間和間隔時開始持續的振動
//假定一個數字值
function startPeristentVibrate(duration, interval) {
    vibrateInterval = setInterval(function() {
        startVibrate(duration);
    }, interval);
}複製代碼

上面的這段代碼只是針對振動參數是一個數字的狀況,若是參數是數組,你還須要計算一下它的總共持續時間,而後根據它的特徵來進行循環。spa

文檔參考

相關文章
相關標籤/搜索