Le dessin est cassé sur les appareils iOS 13.
Je peux dessiner des lignes horizontales droites, mais si j'essaie de dessiner des lignes verticales, cela ne dessine qu'un point et la page défile de haut en bas au lieu de dessiner.
J'ai vérifié avec XCodes iOS Simulator qu'il fonctionnait sur les appareils iOS 12.
Le bug peut également être reproduit avec la démo officielle signature_pad http://szimek.github.io/signature_pad/
Une citation des notes de version de Safari 13 :
Added support for one-finger accelerated scrolling to all frames and overflow:scroll}}elements eliminating the need to {{set-webkit-overflow-scrolling: touch.
Changed the default behavior on iPad for wide web pages with responsive meta-tags that require horizontal scrolling. Pages are scaled to prevent horizontal scrolling and any text is resized to preserve legibility.
https://developer.apple.com/documentation/safari_release_notes/safari_13_release_notes
Serait-ce la cause de ce bug ?
Le moyen le plus simple de résoudre ce problème est d'ajouter un wrapper avec ontouchmove="return false"
<div ontouchmove="return false">
<canvas id="signature" />
</div>
il est également corrigé dans iOS 13.1
J'ai dû attacher le gestionnaire d'événements onTouchMove au div du conteneur racine de notre application de réaction.
Cela ne fonctionne pas si j'enveloppe simplement le canevas dans un div avec ce gestionnaire d'événements.
Cependant, cela désactive complètement le défilement sur les appareils tactiles.
J'ai donc dû attacher et détacher dynamiquement l'événement ontouchmove lorsque l'utilisateur clique sur le canevas.
Commentaire le plus utile
il est également corrigé dans iOS 13.1