2017-01-13 3 views
0

Mon application utilisant l'infrastructure de notification utilisateur pour planifier les notifications locales toutes les 30 minutes. J'ai placé un déclencheurArrêter les notifications locales iOS à un moment donné

var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(60 * 30, true); 

Cependant, je voudrais arrêter ces notifications après certain temps disons 21h00. Comment fait-on ça?

Répondre

0

Il y a 3 opitios pour supprimer les notifications locales.

1. Lorsque l'application est au premier plan: - Si l'application est en avant-plan, vérifiez l'heure locale du périphérique et supprimez toutes les notifications locales en attente.

UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests(); 

2. Si l'application est en arrière-plan: Vous ne pouvez pas exécuter un code à un certain moment où l'application est en arrière-plan. Il existe deux approches pour supprimer la notification locale à un moment donné. Cependant, c'est l'OS qui décide si les méthodes de rappel doivent appeler ou non selon les ressources disponibles, le pourcentage de batterie, le périphérique est en charge, etc.

a. Chargement en arrière-plan - Activez la fonction de récupération d'arrière-plan, qui appelle la méthode de rappel après une heure spécifique lorsque le périphérique est en arrière-plan. Encore une fois, OS décidera quand appeler en fonction des utilisations de l'application.

//Fetch interval 
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum); 


//Call back method 
    public override void PerformFetch(UIApplication application, Action<UIBackgroundFetchResult> completionHandler) 
     { 
      // Code of removing local notifications 
     } 

b. Utilisation de la notification silencieuse: Lorsque l'application a reçu une notification à distance silencieuse, la notification à distance a reçu la méthode de rappel appelée sans son et alerte. Vous pouvez exécuter le code pour supprimer la notification locale.