Задать вопрос
@Programmir

Как определить пользователя с мобильного на сайте?

Допустим, есть кнопка "позвонить". Если пользователь с мобильного устройства заходит на сайт, то срабатывает ссылка с tel. А если пользователь не может позвонить с устройства, то всплывает окошко. Как определить, что пользователь может с устройства позвонить или нет?
  • Вопрос задан
  • 2723 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 3
@sloupok123
Я использую такой метод определения.
var isMobile = {
    Android: function () {
        return navigator.userAgent.match(/Android/i);
    },
    BlackBerry: function () {
        return navigator.userAgent.match(/BlackBerry/i);
    },
    iOS: function () {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    Opera: function () {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    Windows: function () {
        return navigator.userAgent.match(/IEMobile/i);
    },
    any: function () {
        return (
                isMobile.Android()
                || isMobile.BlackBerry()
                || isMobile.iOS()
                || isMobile.Opera()
                || isMobile.Windows()
                );
    }
};

вызываем в нужном месте isMobile.any() и если вернуло true, то человек пришел с мобильного устройства
Ответ написан
Комментировать
antoo
@antoo
Если очень грубо, то так:
<div class="desktop">
  <a href="#" onclick="showCallPopup();">+7 800 123 4567</a>
</div>
<div class="mobile">
  <a href="tel:+78001234567">+7 800 123 4567</a>
</div>


С помощью JS определяете используется десктоп или телефон и скрываете один из div'oв.
Ответ написан
Anubis
@Anubis
Люблю корейскую кухню и веб-разработку
1) https://www.npmjs.com/package/mobile-detect

2)
import MobileDetect from 'mobile-detect';

const md = new MobileDetect(window.navigator.userAgent);

const isMobile = md.mobile() != null;


3) Имея под рукой значение isMobile, управляете дальнейшей логикой. Например, как в варианте от antoo
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы