JavaScript: тип пользовательского устройства
определяем тип пользовательского устройства в JavaScript
 
  
  Для корректной работы некоторых скриптов нужно знать тип пользовательского устройства. Например, в случае, когда нужно собрать статистику и проанализировать информацию о пользователях веб-сервиса, или, если поведение скрипта зависит от того, на каком устройстве он запущен.
В этой небольшой статье мы получим тип пользовательского устройства с помощью JavaScript, полагаясь на данные свойства userAgent.
userAgent
userAgent - свойство объекта navigator. userAgent содержит информацию, которую браузер передает в HTTP-заголовках.
К сожалению, значение свойства userAgent представлено в виде одной очень большой строки и плохо читается. Однако, с помощью регулярного выражения мы можем получить тип устройства пользователя:
- tablet - планшет,
- mobile - мобильный телефон или смартфон,
- все остальные случае будут отнесены к настольных компьютерам и ноутбукам.
Кроме типа устройства таким образом можно получить и другую информацию, например: ширину экрана пользовательского устройства.
А теперь перейдем к JS-скрипту, реализующему нужную нам функцию:
const getDeviceType = () => {
  const ua = navigator.userAgent,
    types = [
      {
        type: "tablet",
        value: /(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)
      },
      {
        type: "mobile",
        value: /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(
          ua
        )
      }
    ];
  try {
    return types.filter(type => type.value)[0].type;
  } catch (error) {
    return "desktop";
  }
};
Следует заметить, что userAgent не всегда содержит данные о реальном пользовательском устройстве. Эту информацию довольно легко подменить. Например, для ботов параметры пользовательского устройства практически всегда являются ложными.
Спасибо за внимание.

 
   
   
   
  