Javascript/jQuery обнаруживает мобильный телефон с планшета

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

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

поэтому мне нужно что-то, что я могу сделать что-то вроде

if(!isMobile() || isMobile() && isTablet()){
   // allow the system to load and work
}else{
   // Display notice system does not support mobiles currently.
}

Изображения интерфейса на разных устройствах На моем ноутбуке с разрешением 1080p Это на моем ноутбуке все в порядке (1080p) Это на поверхности это на моей поверхности (3000x2000)

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

Мой основной вопрос: можно ли получить разницу между планшетом и мобильным телефоном.


person Barkermn01    schedule 13.07.2016    source источник
comment
Привет, во-первых, вы можете проверить, используете ли вы сенсорное устройство, попытавшись создать файл TouchEvent. Во-вторых, если вы используете сенсорное устройство, проверьте ширину экрана.   -  person Yoplaboom    schedule 13.07.2016
comment
Но проблема заключается в ширине экрана. Мне нужен экранный DPI, чтобы выполнить полный расчет, чтобы определить, насколько велик экран.   -  person Barkermn01    schedule 13.07.2016
comment
@ T.J Crowder, это не дубликат того, что я спрашиваю совсем другое, что вы пометили как дубликат вопроса, который я задал вам на основе вашего ответа, который свидетельствует о том, что ваш ответ не подходит.   -  person Barkermn01    schedule 13.07.2016
comment
@MartinBarker: Нет, это именно то, что вы сказали, что хотите сделать в комментариях к этому ответу: определить физический размер экрана, чтобы вы могли решить, будет ли он работать на вашем сайте. Вот что касается этого вопроса. Если комментарии к этому ответу верны, то А) мой ответ здесь не помогает, и Б) ответы там помогают, насколько это возможно.   -  person T.J. Crowder    schedule 13.07.2016
comment
Нет, это не то, о чем я вас спрашивал, когда ваш ответ был таким образом с медиа-запросами, мой вопрос касается просто желания узнать, возможно ли обнаружить планшеты с мобильных телефонов.   -  person Barkermn01    schedule 13.07.2016
comment
@MartinBarker: (Подсказка: я пытаюсь помочь вам здесь.) Отойдите на минутку: вам все равно, планшеты это или мобильные телефоны. Судя по комментариям к моему ответу, вас волнует, насколько велики их экраны, и это единственная реальная разница между планшетом и телефоном. Учтите: экран iPad mini — 7,9; телефон Samsung Galaxy W — 7. Вы действительно думаете, что ваш сайт будет работать на iPad Mini, а не на Galaxy W? Я предполагаю, что это работает на обоих, или ни на одном.   -  person T.J. Crowder    schedule 13.07.2016
comment
и это крайний случай, такой же, как у моего Note 3, большинство Android или iPhone имеют экраны от 5 до 7 дюймов, а большинство планшетов - от 9 до 12 дюймов. долгосрочная цель состоит в том, чтобы иметь совершенно другую систему для мобильных устройств.   -  person Barkermn01    schedule 13.07.2016
comment
Так что мне важно, насколько велики экраны, но также и разрешение, на которое они способны, всегда будут крайние случаи, которые я просто не могу поддержать. но телефоны, как правило, больше склоняются к меньшему экрану с большим разрешением. поэтому я не хочу, чтобы телефоны поддерживались по мере совершенствования технологий, это будет происходить все чаще и чаще, мешая мне использовать размер экрана как таковой, доказывая, что невозможно использовать размер экрана в качестве измерения. поэтому мне нужно определить, телефон это или планшет без размера экрана.   -  person Barkermn01    schedule 13.07.2016


Ответы (2)


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

Если это проблема с размером экрана, определите размер экрана.

Если это проблема со скоростью соединения, определите скорость соединения или просто позвольте пользователю судить о том, что достаточно быстро.

И т. д.

person T.J. Crowder    schedule 13.07.2016
comment
Проблема в том, что весь интерфейс разработан для больших экранов, я действительно не хотел бы поддерживать что-либо меньше 10 дюймов, так как система станет непригодной для использования, поскольку элементы будут слишком малы для взаимодействия с пользователем. - person Barkermn01; 13.07.2016
comment
@MartinBarker: Итак, вот и все, используйте медиа-запросы, чтобы показать основной интерфейс, когда экран достаточно большой, и сообщение на экранах меньшего размера. - person T.J. Crowder; 13.07.2016
comment
Я могу ошибаться здесь, но медиа-запрос или любой размер экрана не используют разрешение, поэтому ширина и высота, когда мне понадобятся ширина, высота и DPI, чтобы построить расчет, чтобы приравнять, достаточно ли велик экран. - person Barkermn01; 13.07.2016
comment
@MartinBarker: Честно говоря, я бы просто выбрал количество пикселей, которое подходит для дизайна, и оставил бы людей самим беспокоиться о физическом размере. Разные люди воспринимают слишком маленькое и слишком большое очень по-разному, все, что вы делаете, будет в значительной степени неправильным. - person T.J. Crowder; 13.07.2016
comment
Нет, это было бы слишком мало для использования. я загружу фото - person Barkermn01; 13.07.2016

Я бы предложил изменить isTablet на isTouch и использовать что-то вроде этих двух функций:

function isTouch() {
  return ('ontouchend' in window)? 'true' : 'false';
}
function isMobile() {
  if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)) {
    return true;
  }
  return false;
}
function hasRequiredResolution(required_res) {
    return (window.screen.height * window.screen.width) >= required_res;
}

Обновление: я добавил метод для возврата true или false в зависимости от того, имеет ли подключающийся клиент желаемое разрешение. Это должно позволить вам идентифицировать клиентов, на которых вы хотите ориентироваться.

person atomless    schedule 13.07.2016
comment
Это именно та проблема, которую я пытаюсь предотвратить, iPad и Samsung Galaxy Tab, а также мои Note 3 и Galaxy S6 будут соответствовать обоим, но я не хочу, чтобы Note 3 или S6 соответствовали, потому что экраны слишком малы для этого. ... - person Barkermn01; 13.07.2016
comment
Пока вы не найдете решение, доказывающее, что то, что вам нужно, действительно выполнимо, без составления исчерпывающего списка каждого отдельного агента навигатора, которому вы хотите разрешить, я действительно не думаю, что с вашей стороны правильно отмечать единственный ответ на ваш запрос о помощи, который предпринимает любые попытки оказать конструктивную помощь. - person atomless; 14.07.2016
comment
я не проголосовал за тебя, кто-то другой сделал, я оставил комментарий и ждал ответа. но спасибо за ваше обновление, оно близко к тому, что нужно, но разрешение не самое лучшее для моего сайта. Возможно, мне просто нужно проверить прикосновение, и если это Windows, если да, то разрешите. а затем создайте приложение только для планшетов. - person Barkermn01; 15.07.2016
comment
круто, надеюсь у тебя все получится. - person atomless; 15.07.2016