Заставить неподдерживаемые браузеры игнорировать методы API VIBRATION

Я использую Vibration API, чтобы вибрировать пользовательское устройство для улучшения UX.

navigator.vibrate(200);

Проблема в том, что он ломает мой сайт на неподдерживаемых браузерах / устройствах. Я знаю, что могу проверить поддержку вибрации перед вызовом метода вибрации следующим образом:

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

Но я уже опубликовал свой сайт, его в прямом эфире. Мне нужен какой-то взлом, который заставит игнорировать неподдерживаемые браузеры / устройства navigator.vibrate() метод, где когда-либо использовался.

2 ответа

Как предложено 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) {};

МЕТОД 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");
}
    

МЕХТОД 2

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

Другие вопросы по тегам