可以防止在 iOS 10中进行网页扩展,但是它会涉及到更多的工作。 我想这个论点是一个难点,应该停止货物的"user-scalable=no"将丢入每个视口标签,并使用户不必要。
但是,我希望看到苹果更改他们的实现,以便有一个简单的( 元标记) 方法来禁用 double-tap-to-zoom 。 大多数的困难与这个交互有关。
你可以通过如下方式停止 pinch-to-zoom:document.addEventListener('touchmove', function (event) {
if (event.scale!== 1) { event.preventDefault(); }
}, false);
注意,如果任何更深的目标在事件上调用 stopPropagation,那么事件将不会到达文档。
禁用double-tap-to-zoom类似。你可以禁用在以前点击的300毫秒内发生的文档中的任何点击:var lastTouchEnd = 0;
document.addEventListener('touchend', function (event) {
var now = (new Date()).getTime();
if (now - lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
}, false);
如果没有设置表单元素,注意输入将自动缩放,因为大多数人都禁用了手动缩放。 确保输入字体大小为> = 16像素。
如果你试图在本机应用程序的WKWebView中解决这里问题,给出的解决方案是可行的,但这是一个更好的解决方案: 比如,苹果的beta测试版 6,苹果现在提供了一个标志来纪念元标记。
更新 2017年05月: 我用简单的'检查touchmove上的event.scale'方法替换了禁用收缩缩放的旧'检查touchstart上的触摸长度'方法。 对每个人都更可靠。