Procédure pas à pas : utilisation des notifications locales dans Xamarin.iOS
Dans cette section, nous allons découvrir comment utiliser des notifications locales dans une application Xamarin.iOS. Il illustre les principes de base de la création et de la publication d’une notification qui affiche une alerte lorsqu’elle est reçue par l’application.
Important
Les informations contenues dans cette section se rapportent à iOS 9 et antérieures, il a été laissé ici pour prendre en charge les versions antérieures d’iOS. Pour iOS 10 et versions ultérieures, consultez le guide de l’infrastructure de notification utilisateur pour prendre en charge les notifications locales et distantes sur un appareil iOS.
Procédure pas à pas
Nous allons créer une application simple qui affiche les notifications locales en action. Cette application aura un bouton unique sur celui-ci. Lorsque nous cliquez sur le bouton, il crée une notification locale. Une fois la période spécifiée écoulée, la notification s’affiche.
Dans Visual Studio pour Mac, créez une solution iOS en mode unique et appelez-la
Notifications
.Ouvrez le
Main.storyboard
fichier, puis faites glisser un bouton sur l’affichage. Nommez le bouton bouton et donnez-lui le titre Ajouter une notification. Vous pouvez également définir certaines contraintes sur le bouton à ce stade :Modifiez la
ViewController
classe et ajoutez le gestionnaire d’événements suivant à la méthode ViewDidLoad :button.TouchUpInside += (sender, e) => { // create the notification var notification = new UILocalNotification(); // set the fire date (the date time in which it will fire) notification.FireDate = NSDate.FromTimeIntervalSinceNow(60); // configure the alert notification.AlertAction = "View Alert"; notification.AlertBody = "Your one minute alert has fired!"; // modify the badge notification.ApplicationIconBadgeNumber = 1; // set the sound to be the default sound notification.SoundName = UILocalNotification.DefaultSoundName; // schedule it UIApplication.SharedApplication.ScheduleLocalNotification(notification); };
Ce code crée une notification qui utilise un son, définit la valeur du badge d’icône sur 1 et affiche une alerte à l’utilisateur.
Modifiez ensuite le fichier
AppDelegate.cs
, commencez par ajouter le code suivant à laFinishedLaunching
méthode. Nous avons case activée pour voir si l’appareil exécute iOS 8, si c’est le cas, nous devons demander l’autorisation de l’utilisateur de recevoir des notifications :if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) { var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes ( UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null ); application.RegisterUserNotificationSettings (notificationSettings); }
Toujours dans
AppDelegate.cs
, ajoutez la méthode suivante qui sera appelée lorsqu’une notification est reçue :public override void ReceivedLocalNotification(UIApplication application, UILocalNotification notification) { // show an alert UIAlertController okayAlertController = UIAlertController.Create(notification.AlertAction, notification.AlertBody, UIAlertControllerStyle.Alert); okayAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(okayAlertController, true, null); // reset our badge UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; }
Nous devons gérer le cas où la notification a été lancée en raison d’une notification locale. Modifiez la méthode
FinishedLaunching
dans laAppDelegate
section pour inclure l’extrait de code suivant :// check for a notification if (launchOptions != null) { // check for a local notification if (launchOptions.ContainsKey(UIApplication.LaunchOptionsLocalNotificationKey)) { var localNotification = launchOptions[UIApplication.LaunchOptionsLocalNotificationKey] as UILocalNotification; if (localNotification != null) { UIAlertController okayAlertController = UIAlertController.Create(localNotification.AlertAction, localNotification.AlertBody, UIAlertControllerStyle.Alert); okayAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); Window.RootViewController.PresentViewController(okayAlertController, true, null); // reset our badge UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; } } }
Enfin, exécutez l’application. Sur iOS 8, vous serez invité à autoriser les notifications. Cliquez sur OK , puis sur le bouton Ajouter une notification . Après une courte pause, vous devez voir la boîte de dialogue d’alerte, comme illustré dans les captures d’écran suivantes :
Résumé
Cette procédure pas à pas a montré comment utiliser les différentes API pour créer et publier des notifications dans iOS. Il a également montré comment mettre à jour l’icône d’application avec un badge pour fournir des commentaires spécifiques à l’application à l’utilisateur.