Fermer

octobre 26, 2022

E-mail, SMS et numéroteur téléphonique dans .NET MAUI

E-mail, SMS et numéroteur téléphonique dans .NET MAUI


Découvrez comment activer l’envoi d’e-mails et de SMS et passer des appels dans votre application .NET MAUI.

Parmi les fonctions les plus utilisées de nos appareils figurent l’envoi d’e-mails et de SMS et les appels. C’est pourquoi il est important que nous, en tant que développeurs, sachions comment ajouter ces fonctionnalités à nos applications ! La bonne nouvelle est que .NET MAUI possède déjà ces fonctions, et toutes sont contenues dans le Microsoft.Maui.ApplicationModel.Communication espace de noms.

Dans cet article, nous allons découvrir ces trois fonctionnalités de manière simple et rapide ! Commençons à apprendre ! 💪

Paramètres par plate-forme

Pour être sûr que ces trois fonctionnalités sont correctement intégrées dans notre application, nous devons nous assurer d’avoir les configurations appropriées. C’est pourquoi je vous fournis l’ensemble des instructions que vous devez appliquer pour chaque plate-forme.

Logo Windows les fenêtres

Aucune configuration n’est requise pour faire des appels, envoyer un SMS ou e-mails.

Logo Android Android

Si le projet est version Android cible est défini sur Android 11 (R API 30) ou supérieur, mettez à jour AndroidManifest avec des requêtes qui utilisent le Exigences de visibilité du package Android.

Aller à Plateformes ➡ Android ➡ AndroidManifest.xml file et à l’intérieur des nœuds Manifest, ajoutez ce qui suit :

– Pour utiliser le numéroteur téléphonique

<queries>
	<intent>
		<action android:name="android.intent.action.DIAL" />
		<data android:scheme="tel"/>
	</intent>
</queries>

– Pour envoyer des SMS

<queries>
	<intent>
		<action android:name="android.intent.action.VIEW" />
		<data android:scheme="smsto"/>
	</intent>
</queries>

– Pour envoyer des e-mails

<queries>
	<intent>
		<action android:name="android.intent.action.SENDTO" />
		<data android:scheme="mailto" />
	</intent>
</queries>

logo pomme iOS/mac OS

– Pour envoyer des e-mails

Allez sur les fichiers suivants et faites un double-clic pour ouvrir :

  • Plateformes ➡ iOS ➡ Info.plist
  • Plateformes ➡ MacCatalyst ➡ Info.plist

Et ajoutez le LSApplicationQueriesSchemesLSApplicationQueriesSchemes schème.

Configuration iOS LSApplicationQueriesSchemes

Une fois ajouté, si vous ouvrez le info.plist avec Visual Studio Code, à l’intérieur du <dict> tags, vous verrez une partie de code comme celle-ci ajoutée :

<key>LSApplicationQueriesSchemes</key>
<string></string>

Aucune configuration n’est requise pour envoi de SMS ou passer des appels.

Passer des appels depuis nos applications

.NET MAUI nous permet d’ouvrir le numéroteur téléphonique de la plate-forme pour passer un appel, de sorte que l’utilisateur n’a qu’à appuyer sur le bouton de numérotation pour terminer son appel.

Tout cela grâce à la IPhoneDialer l’interface, qui est disponible via le PhoneDialer.Default propriété.

Comment utiliser la fonctionnalité d’appel

D’abord, nous allons connaître les aspects les plus importants de PhoneDialer.Default:

  • Prise en charge: C’est une propriété booléenne qui indique à l’utilisateur si cet appareil prend en charge cette fonctionnalité. (Optionnel.)
  • Ouvert: C’est la méthode responsable de l’ouverture du tableau d’appel par défaut de votre appareil et elle reçoit en paramètre le numéro de téléphone qui sera affiché sur l’appareil, et c’est une valeur de chaîne.

Voyons maintenant un exemple de code :

if (PhoneDialer.Default.IsSupported)
PhoneDialer.Default.Open("809-555-5454");

Envoi de SMS

De plus, .NET MAUI nous permet d’ouvrir l’application SMS par défaut avec des données préchargées telles que le corps du message et le ou les expéditeurs. Pour ce faire, .NET MAUI dispose de l’interface ISms, dont l’implémentation est disponible via la propriété Sms.Default.

Comment utiliser les capacités SMS

Apprenons à le construire étape par étape :

1. Vérifiez la prise en charge de la plate-forme.

SMS.Default.IsComposeSupported : Il s’agit d’une propriété de valeur booléenne qui nous permet d’identifier si l’appareil prend en charge cette fonctionnalité. (⚠ Ce n’est pas obligatoire, mais cela vous fait gagner beaucoup de temps si votre appareil ne peut pas exécuter cette fonctionnalité.)

if (Sms.Default.IsComposeSupported) 
{ 
    // Add all the following code here 
}

2. Créez un objet SmsMessage.

Pour les besoins de cet exemple, nous avons besoin de deux facteurs importants :

string[] recipients = new[] { "809-555-5454" };
  • Le message: C’est le corps du message à afficher dans le SMS.
string text = "Hi everyone, I'm a MAUI SMS!";

3. Maintenant, regroupons ces données dans une variable en utilisant le SmsMessage:

var message = new SmsMessage(text, recipients)

4. Ensuite, utilisons le ComposeAsync méthode pour envoyer le SMSqui reçoit SmsMessage comme paramètre (celui que nous avons créé à l’étape précédente).

await Sms.Default.ComposeAsync(message);

5. Enfin, en regroupant toutes les lignes de code expliquées ci-dessus, nous aurons un résultat comme le suivant (J’ai tout ajouté à l’intérieur d’une méthode asynchrone comme requis par le ComposeAsync méthode):

public async void SendSmsTo()
{
	if (Sms.Default.IsComposeSupported)
	{
		string[] recipients = new[] { "809-555-5454" };
		string text = "Hi everyone, I'm a MAUI SMS!";
		var message = new SmsMessage(text, recipients);
		await Sms.Default.ComposeAsync(message);
	}
}

Envoyer des emails

Devine quoi? Nous pouvons également envoyer des e-mails via .NET MAUI, essentiellement de la même manière que les fonctionnalités précédentes. Il ouvre l’application de messagerie établie par défaut sur notre appareil, nous permettant d’avoir un message préchargé avec les données de l’expéditeur, l’objet et le corps du message. De cette façon, l’utilisateur n’a qu’à appuyer sur le bouton d’envoi.

Pour rendre cela possible, nous avons le IEmail interface dont l’implémentation est disponible dans Propriété Email.Default.

Comment utiliser la fonctionnalité de messagerie

La Email classe, qui contient les ComposeAsync méthode, reçoit EmailMessage comme paramètre. Ainsi, vous devez appliquer les étapes suivantes :

1. Vérifiez la prise en charge de la plate-forme.

Email.Default.IsComposeSupported est une propriété de valeur booléenne qui nous permet d’identifier si l’appareil prend en charge cette fonctionnalité. (⚠ Ce n’est pas obligatoire, mais cela vous fait gagner beaucoup de temps si votre appareil ne peut pas exécuter cette fonctionnalité.)

if (Email.Default.IsComposeSupported)
{
	// Add all the following code here
}

2. Créez un objet EmailMessage.

La Message électronique objet a besoin de quatre propriétés importantes :

  • Matière: Objet de l’e-mail à envoyer.
  • Corps: Corps de l’e-mail à envoyer.
  • Format du corps : Indique si le message est en texte plat ou en HTML. Vous pouvez l’indiquer avec le EmailCorpsFormat énumérateur qui contient le Texte brut ou HTML valeurs.
  • À: Le(s) destinataire(s) de l’e-mail.

Ici, je vous laisse un exemple de sa mise en œuvre :

var message = new EmailMessage
{
	Subject = "Hi how are you?",
	Body = "Thanks for being here, nice to meet you!",
	BodyFormat = EmailBodyFormat.PlainText,
	To = new List<string>(new[] { "marie@outlook.com", "jose@outlook.com" , "peter@outlook.com" })
};

Joindre un fichier 🤔

Cette partie est facultative, mais si vous souhaitez joindre des fichiers, utilisez le EmailMessage.Pièce jointe le recueil. Le type de fichier (MIME) est automatiquement détecté, vous n’avez donc pas besoin de le spécifier. Vous pouvez le faire comme je vous le montre ci-dessous :

message.Attachments.Add(new EmailAttachment(Path.Combine(FileSystem.CacheDirectory, "dotnet_bot.svg")));

Ensuite, utilisons la méthode ComposeAsync pour envoyer l’e-mail. Il reçoit EmailMessage comme paramètre (celui que nous avons créé à l’étape précédente) :

await Email.Default.ComposeAsync(message);

Enfin, en regroupant toutes les lignes de code expliquées ci-dessus, nous aurons un résultat comme celui-ci (j’ai tout ajouté à l’intérieur d’une méthode async comme l’exige le ComposeAsync méthode):

public async void SendEmail()
{
	if (Email.Default.IsComposeSupported)
	{
		var message = new EmailMessage
		{
			Subject = "Hi how are you?",
			Body = "Thanks for being here, nice to meet you!",
			BodyFormat = EmailBodyFormat.PlainText,
			To = new List<string>(new[] { "marie@outlook.com", "jose@outlook.com" , "peter@outlook.com" })
		};
		message.Attachments.Add(new EmailAttachment(Path.Combine(FileSystem.CacheDirectory, "dotnet_bot.svg")))
		await Email.Default.ComposeAsync(message);
		}
}

Limites de la plate-forme

logo windows les fenêtres

  • Seulement EmailBodyFormat.PlainText est pris en charge.
  • EmailBodyFormat.HTML lève l’exception FeatureNotSupportedException.
  • Tous les clients de messagerie ne prennent pas en charge l’envoi de pièces jointes.

logo androïde Android

  • Tous les clients de messagerie pour Android ne prennent pas en charge EmailBodyFormat.Html.

logo pomme iOS/mac OS

  • Tous les deux EmailBodyFormat.PlainText et EmailBodyFormat.HTML sont pris en charge.
  • Pour le bon fonctionnement de l’API Email, vous devez exécuter votre application sur un appareil physique, sinon elle lèvera une exception.

Emballer

Et.. Voila! 💪 Désormais, vous savez comment envoyer des SMS et des e-mails et comment passer des appels dans vos applications .NET MAUI ! 💚💕

À la prochaine! 🙋‍♀️

Références:




Source link