强制不支持的浏览器忽略VIBRATION API方法

时间:2018-07-21 08:54:07

标签: javascript vibration

我正在使用Vibration API振动用户设备以改善UX。

navigator.vibrate(200);

问题在于它在不受支持的浏览器/设备上破坏了我的网站。我知道我可以在调用振动方法之前检查振动支持:

if("vibrate"  in navigator)  {
    // vibration API supported
}

但是我已经发布了我的网站,它是实时的。我需要某种黑客手段,这将迫使不受支持的浏览器/设备在使用过的地方忽略navigator.vibrate()方法。

2 个答案:

答案 0 :(得分:0)

方法1

if(window.navigator && typeof window.navigator.vibrate !=='undefined')
{
    //Execute your code
    console.log("Vibrate API is supported by browser",window.navigator.vibrate);
}
else
{
    console.log("Browser issues: Vibrate API not supported");
}
    

MEHTOD 2

try
{
    console.log("Vibrate API is supported by browser",window.navigator.vibrate);
    //Execute your code
}
catch(Err)
{
    console.log("Browser issues:",Err);
}

答案 1 :(得分:0)

根据Keith的建议

这4行(保留在全球范围内)将阻止不受支持的浏览器/设备破坏您的网站。

let mainNavigator = window.navigator;
let navigator = {};
let vibrationSupport = "vibrate" in mainNavigator;
vibrationSupport ? navigator.vibrate = function(value) { mainNavigator.vibrate(value); } : navigator.vibrate = function(value) {};