Заставить неподдерживаемые браузеры игнорировать методы 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);
}