在全屏模式下禁用iOS Safari中的捏合/缩放功能

5
我在iPad Safari 上有一个WebGL游戏,用通常的解决方案(比如这个:disable viewport zooming iOS 10+ safari?)能够禁用系统的捏合/缩放操作。但是,在使用document.body.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT) 切换到全屏模式后,无法实现禁用操作。
我已经在meta中添加了touch-action: none;, user-scalable=no,并对所有触摸事件(touchstart, touchend, touchmove, touchcancel)使用了passive: falsee.preventDefault();
编辑:下面是我尝试过的大部分方法的代码片段:https://codepen.io/SerialF/pen/BaaRKJN

我有同样的问题,而且已经搜索解决方案多个月了。 - Kocsis Dávid
我还没有找到任何解决方案 :( 在three.js论坛上也没有得到答案。 - Florent
1个回答

0

你在这方面有什么进展吗?我在一个基于Angular的three.js应用程序中遇到了类似的问题。当在Safari上进行捏合缩小操作时,无法强制退出iPad上的全屏模式。我发现Chrome不支持iPad上的全屏模式,我尝试禁用触摸事件,在touchstart监听器上使用e.preventDefault()。我找不到exitFullScreen被调用的位置,似乎它只是内置于操作系统中,与DOM完全独立。

更新:虽然不是100%的解决方案,但感谢Florent提供的此解决方法。

“他们建议添加一个主屏幕快捷方式,并使用所有必需的PWA元标记(请参见此处),这是使全屏正常工作的唯一方法”


不,从未找到任何解决方案。我的游戏在iOS上不使用全屏,这是无法使用的。他们建议添加一个快捷方式到主屏幕,同时添加所有必需的PWA元标签(请参见此处),这是唯一使全屏正常工作的方法。 - Florent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接