Google Maps API中的"meta viewport user-scalable = no"有什么意义

Ian*_*unn 90 mobile viewport meta-tags google-maps-api-3

我正在使用Google Maps JavaScript API V3,官方示例总是包含此元标记:

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)

我见过的大多数第三方例子都是这样做的.我写了一个使用它的插件,我的一个用户告诉我,这使他无法放大和移出他的移动设备.我没有要测试的移动设备,我的搜索都没有显示任何有用的信息.

那么,标签的重点是什么?我应该留下吗?我应该尝试检测浏览器代理并仅显示桌面浏览器吗?

如果要检查插件,可以下载它,浏览源代码查看实例.

Tro*_*ott 102

在许多设备(例如iPhone)上,它会阻止用户使用浏览器的缩放.如果你有一张地图并且浏览器进行了缩放,那么用户将看到一个带有巨大像素化标签的大像素图像.这个想法是用户应该使用谷歌地图提供的缩放.不确定与您的插件的任何交互,但这就是它的用途.

最近,正如@ehfeng在他的回答中指出的那样,Chrome for Android(以及其他人)已经利用了这样一个事实:没有本地浏览器缩放具有这样设置的视口标记的页面.这使他们能够摆脱浏览器等待的触摸事件所带来的可怕300ms延迟,看看你的单次触摸是否会成为双重触摸.(想想"单击"和"双击".)但是,当最初询问此问题时(2011年),在任何移动浏览器中都不是这样.它刚刚增加了最近偶然出现的令人敬畏的功能.

  • 不要那样做。它使某些网站无法在 Android 版 Firefox(也许还有其他网站)上使用。您无法确定您的页面将在所有浏览器上正确显示,并且如果您删除缩放功能,某些用户将无法使用您的网站。仅仅0.3秒多一点。雅虎科技就是一个例子,如果某个网站因无法缩放而无法在 Android 版 Firefox 上读取。 (2认同)

ehf*_*eng 41

禁用用户可扩展(即,双击缩放的功能)允许浏览器减少点击延迟.在启用触摸的浏览器中,当用户希望双击进行缩放时,浏览器通常会在触发点击事件之前等待300毫秒,等待用户双击.禁用用户可扩展性允许Chrome浏览器立即触发点击事件,从而提供更好的用户体验.

来自Google IO 2013会话 https://www.youtube.com/watch?feature=player_embedded&v=DujfpXOKUp8#t=1435s

更新:它不再<meta name="viewport" content="width=device-width">是真的,足以消除300ms的延迟


sta*_*345 9

v3文档(开发人员指南>概念>为移动设备开发):

Android和iOS设备尊重以下<meta>标记:

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)

此设置指定地图应全屏显示,并且不应由用户调整大小.请注意,iPhone的Safari浏览器要求此<meta>标记包含在页面<head>元素中.