web-dev-qa-db-fra.com

Safari mailto: "Ce site Web a été empêché de composer automatiquement un email."

Lorsque vous utilisez Safari (iOS 10.2) et cliquez sur un lien mailto, une invite de confirmation s'affiche avec le message suivant:

"Ce site Web ne peut pas composer automatiquement un email." Ignorer/Autoriser

Je voudrais me débarrasser de cela sur mon propre site et je ne sais pas quoi faire. Il peut être reproduit avec Safari, par exemple sur n’importe quel article de la BBC en cliquant sur l’icône mail.

Capture d'écran du dialogue sur iPad

Mes recherches sur le Web m'ont amené à ces liens:

https://discussions.Apple.com/thread/7763735

WillieFromColo 11 janvier 2017 08:25 en réponse à Russ G

Problèmes avec Safari et "Ce site Web a été bloqué.... Composant automatiquement un email."

Ma recherche sur Google suggère que ce message de type erreur ait commencé se passe vers le mois de novembre avec une mise à jour de Safari, qui probablement s'est produite en même temps que la mise à jour d'Apple vers iOS 10.2. À partir d'aujourd'hui (1/11/17) c'est la dernière version d'iOS pour iPad et peut-être Les iPhones aussi.

[...]

et 

https://developer.Apple.com/safari/technology-preview/release-notes/#r15

Version 15 Gestion des URL

La navigation vers les liens tel: et mailto: nécessite désormais un geste de l'utilisateur; les navigations sans geste de l'utilisateur afficheront une invite de confirmation

Cela ressemble donc à une "fonctionnalité" de Safari. Est-ce que quelqu'un sait comment empêcher cette invite?

8
Johannes Horak

Diverses bibliothèques JavaScript tierces interceptent les clics sur les attributs a afin d'empêcher la navigation pendant la transmission de données à un serveur. Généralement, ils déclenchent la navigation par programmation via window.location.replace.

Le changement dans Safari affiche l'avertissement lorsque les liens mailto/tel sont déclenchés de cette manière.

Il existait une interaction, mais cela a généralement été arrêté avec preventDefault, et Safari s'en fiche.

Si vous utilisez une bibliothèque à l'origine de ce problème, contactez le créateur pour voir s'il peut la mettre à jour pour ignorer preventDefault sur les liens mailto/tel.

5
jmc

Ce que je n’ai pas mentionné au départ, c’est que nous avons appelé le mailto à partir de la partie JavaScript de la page. Nous avons de nouveau essayé de résoudre le problème en optant pour un mailto basé sur des balises HTML (avec to et sujet) et cela fonctionne maintenant d'une manière ou d'une autre sans dialouge . expliquer les raisons. Par conséquent, je ne signale pas cette réponse comme étant la solution.

2
Johannes Horak

C'est arrivé parce que nous avons utilisé window.open(...) pour ouvrir ce lien dans une nouvelle fenêtre.

Remplacé par window.location.href = ... uniquement pour Safari: facepalm :.

0
Vladimir Tolstikov