2017-03-22 2 views
0

Dans mon application mobile, je souhaite basculer en mode plein écran lorsque l'utilisateur glisse vers le haut.
Donc quand touchend événement est déclenché J'appelle document.documentElement.webkitRequestFullScreen();
Le problème est que cela ne fonctionne pas pour moi dans le Chrome 56+ mobile.Événement plein écran sur Touch ne fonctionnant pas sous Chrome

Voici un exemple. La partie d'intérêt est: ce problème apparaissant seulement quand vous faites le touchmove entre touchstart et touchend.

Dans la console, j'ai une erreur:

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

Est-ce que quelqu'un sait comment lutter il?

Répondre

0

Vous devez appeler le preventDefault() sur touchmove, et passer le new option au addEventListener(). Cela fonctionne pour moi:

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

function onTouchMove(e) { 
    e.preventDefault 
} 
+0

Cela fonctionne parce que vous ne pouvez plus déclencher plein écran sur les événements tactiles ** lorsque l'utilisateur utilise simplement le toucher pour faire défiler la page **. Ce code empêche le défilement, de sorte que le balayage de l'utilisateur est traité comme une interaction réelle. –