Touch 上的全屏事件在 Chrome 上不起作用

Full Screen event on Touch not working on Chrome

在我的移动应用程序中,我想在用户向上滑动时切换全屏。
所以当 touchend 事件被触发时,我调用 document.documentElement.webkitRequestFullScreen();
问题是它不适用于移动 Chrome 56+.

这是例子。 https://jsfiddle.net/ibmw/tnncaxj0/6/

感兴趣的部分是:只有在touchstart和touchend之间进行touchmove时才会出现这个问题。

在控制台中出现错误:

Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture. document.documentElement.webkitRequestFullScreen();

有谁知道怎么奋斗吗?

您必须在 touchmove 上调用 preventDefault(),并将 new option 传递给 addEventListener()。它对我有用:

addEventListener('touchmove', onTouchMove, {passive: false});

function onTouchMove(e) {
  e.preventDefault
}