HTML5: обнаружение, если вы находитесь на мобильном телефоне или ПК с javascript? [дубликат]

этот вопрос уже есть ответ здесь:

какой код javascript я могу использовать, чтобы определить, находятся ли пользователи на мобильном или ПК/Mac-браузере в HTML5?

1 ответов


Я изучал это несколько лет назад. Короче говоря, вы не можете сделать это со 100% надежностью. Кажется, есть 2 подхода, обычно используемые для обеспечения "наилучшего предположения":

1. Обнаружение Агента Пользователя Здесь вы проверяете, что такое клиент утверждено быть. например,

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
    // is mobile..
}

это не идеально, так как я считаю, что это довольно легко для этого свойства быть изменены случайно или иным образом. Плюс крайне маловероятно, что этот список будет по-прежнему быть точным через 2 года / 2 недели / 2 дня!

2. Использование Возможностей Клиента Как вы можете себе представить, более прагматичный подход - позволяет удовлетворить известные физические возможности клиента. например,

if( screen.width <= 480 ) {     
    // is mobile.. 
}

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

Если у кого-то есть лучшие идеи, чтобы надежно различать между рабочим столом и устройством, прокомментируйте! :)