Partager via


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.

  1. Dans Visual Studio pour Mac, créez une solution iOS en mode unique et appelez-la Notifications.

  2. 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 : Définition de certaines contraintes sur le bouton

  3. 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.

  4. Modifiez ensuite le fichier AppDelegate.cs, commencez par ajouter le code suivant à la FinishedLaunching 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);
    }
    
  5. 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;
    }
    
  6. 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 la AppDelegate 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;
            }
        }
    }
    
  7. 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 :

    Confirmation de la possibilité d’envoyer des notificationsBouton Ajouter une notificationBoîte de dialogue d’alerte de notification

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.