mon application utilise l'API tactile pour détecter les événements tactiles en JavaScript. Exemple:
$(".element").on("touchstart", function(event){
alert("TRUE");
});
Cela fonctionne sur n'importe quel appareil tactile avec un navigateur comme Android ou iOS, mais cela ne fonctionne pas dans MS Edge sur une tablette Windows 10 avec ou sans clavier connecté. L'API semble être pris en charge: Liste de compatibilité . Cependant, j'ai testé: 'ontouchstart' in window
et cela renvoie false sur cet appareil. De plus, mousedown
semble se faire virer.
Qu'est-ce qui se passe ici? Que puis-je faire pour déclencher des événements tactiles sur une tablette Windows 10? Je souhaite conserver l'événement uniquement pour les périphériques tactiles. Basculer vers l'API d'événements de pointeur inclurait également les périphériques de bureau et ce n'est pas ce que je veux.
pour l'API tactile, vous devez activer un indicateur sur Edge: dans la barre d'adresse, entrez about: flags et appuyez sur entrée. Dans la section Touch, vous pouvez activer les événements tactiles avec la liste déroulante correspondante.
Avez-vous activé la gestion tactile personnalisée? Vous pouvez le faire avec l'extrait de code css suivant (sur la balise body ou tout simplement un conteneur pour les créatures):
-ms-touch-action: none;
Ensuite, l’API tactile est une fonctionnalité de kit Web (il y a peut-être une erreur dans CanIuse?). IE et Edge ont une fonctionnalité similaire appelée API de pointeur. Mais vous pouvez utiliser une bibliothèque polyfill comme ceci: https://github.com/CamHenlin/TouchPolyfill
Essayez d’utiliser l’événement pointerdown
. Certains (beaucoup) plus informations . Comme vous pouvez le constater, touchstart
est déclenché par Edge, mais pas dans toutes les configurations. Lorsqu'un clavier est associé/associé, par exemple, aucun touchstart
.