我有一个 webview,其中打开了一个本地 html 文件。此本地 html 文件使用 Google Javascript API 打开 Google 地图。我已将 webview.getsettings().setbuiltinzoomcontrols 设置为 true。捏缩放正在发生,但 webview 比例正在扭曲。请告诉是否有人知道它发生的原因。感谢和问候 Astha Devra
2 回答
webview.getsettings().setbuiltinzoomcontrols 可以将 webview 作为一个整体进行缩放(就像拉伸图像一样),并且不与 JavaScript 代码通信。
如果您在 Android Web 浏览器上打开 Google 地图而不是运行本机 Google 地图应用程序,您会注意到同样的事情发生了。
您可以使用 onTouchListener 捕获捏合手势,并通过 webview.loadUrl("javascript: YOUR_ZOOM_IN_FUNCTION") 在 JavaScript 中设置 Map 的缩放值。
大多数 android 2.x 设备上的 WebView 不会在 javascript 中生成一个以上的触摸事件,而是缩放浏览器内容 - 因此是“失真”。
为了支持这些设备,您可以增强您的 Web 容器以生成那些丢失的事件 - 我们之前使用此“Polyfill”完成了您可以在 github 上找到的。
还要确保您的 html 标头通过设置如下视口元标记来禁止用户缩放:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />