Ouvrir le client mail choisi par l’utilisateur
Une application iOS peut facilement invoquer Apple Mail avec MFMailComposeViewController
. Pour les autres clients mail (Gmail, Outlook, etc), j’ai créé ThirdPartyMailer. Cette bibliothèque utilise les custom URL schemes pour invoquer des applications spécifiques, avec certaines options : destinataire du mail, sujet, contenu, CC/BCC. Pratique, mais le développeur doit choisir le client à utiliser, ou offrir ce choix à l’utilisateur dans l’application.
Or, depuis iOS 14, un utilisateur peut définir un client mail par défaut autre qu’Apple Mail. J’ai récemment découvert, grâce à cet article de Chris Mash, que MFMailComposeViewController
ne respecte pas ce choix. Les URLs mailto
, en revanche, redirigent correctement. Cela m’est apparu être une opportunité pour ThirdPartyMailer.
Je préparais justement une version 2.0. Il m’a suffit de définir un nouveau client, systemDefault
, avec le scheme mailto
. Mieux, je l’ai assigné comme valeur par défaut du paramètre correspondant. Concrètement, ThirdPartyMailer peut maintenant très facilement ouvrir le client choisi par l’utilisateur :
// Ouverture simple
ThirdPartyMailer.openCompose()
// Ouverture avec paramètres
ThirdPartyMailer.openCompose(recipient: "friend@mail.com", subject: "Hello", body: "Good morning…", cc: "cc@mail.com", bcc: "bcc@mail.com")
Ça paraît tellement évident qu’on dirait une fonctionnalité native du SDK.
Si votre application invoque MFMailComposeViewController
, je vous invite à utiliser ThirdPartyMailer à la place. Vos utilisateurs vous en seront reconnaissants.