Я использую Google Maps JavaScript API V3, и в официальных примерах вы всегда включаете этот метатег:
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
Большинство сторонних примеров, которые я видел, тоже делают это. Однако я написал плагин, используя его, и один из моих пользователей сказал мне, что это мешает ему увеличивать и уменьшать масштаб на своем мобильном устройстве . У меня нет мобильного устройства для тестирования, и ни один из моих поисков не дал полезной информации.
Итак, в чем смысл тега? Я должен оставить это? Должен ли я попытаться обнаружить агент браузера и показать его только для настольных браузеров?
Если вы хотите изучить плагин, вы можете скачать его , просмотреть источник или увидеть живой пример .
mobile
google-maps-api-3
viewport
meta-tags
Ян Данн
источник
источник
Ответы:
На многих устройствах (таких как iPhone) он не позволяет пользователю использовать масштабирование браузера. Если у вас есть карта и браузер выполняет масштабирование, то пользователь увидит большое пиксельное изображение с огромными пиксельными метками. Идея состоит в том, что пользователь должен использовать масштабирование, предоставляемое Google Maps. Не уверен в каком-либо взаимодействии с вашим плагином, но для этого он нужен.
Совсем недавно, как отмечает @ehfeng в своем ответе, Chrome для Android (и, возможно, другие) воспользовались тем фактом, что в собственном браузере нет масштабирования страниц с таким установленным тегом области просмотра. Это позволяет им избавиться от пугающей 300-миллисекундной задержки событий касания, которую браузер заставляет ждать и посмотреть, не превратится ли ваше одиночное касание в двойное касание. (Подумайте о «одиночном щелчке» и «двойном щелчке».) Однако, когда этот вопрос был задан изначально (в 2011 году), это не соответствовало действительности ни в одном мобильном браузере. Это просто добавленная удивительность, которая случайно возникла совсем недавно.
источник
Отключение масштабируемого пользователем (а именно, возможность двойного нажатия для увеличения) позволяет браузеру уменьшить задержку щелчка. В браузерах с поддержкой сенсорного ввода, когда пользователь ожидает двойного касания для увеличения, браузер обычно ждет 300 мс перед запуском события щелчка, ожидая, чтобы увидеть, сделает ли пользователь двойное касание. Отключение масштабируемой пользователем функции позволяет браузеру Chrome немедленно запускать событие щелчка, что улучшает взаимодействие с пользователем.
Из сеанса Google IO 2013 https://www.youtube.com/watch?feature=player_embedded&v=DujfpXOKUp8#t=1435s
Обновление: это уже не так,
<meta name="viewport" content="width=device-width">
достаточно удалить задержку 300 мсисточник
Из документации v3 (Руководство разработчика> Концепции> Разработка для мобильных устройств):
источник
Вы не должны использовать метатег области просмотра вообще, если ваш дизайн не адаптируется. Неправильное использование этого тега может привести к нарушению макетов. Вы можете прочитать эту статью, чтобы узнать, почему вам не следует использовать этот тег, если вы не знаете, что делаете. http://blog.javierusobiaga.com/stop-using-the-viewport-tag-until-you-know-ho
«user-scalable = no» также помогает предотвратить эффект увеличения в полях ввода iOS.
источник