6
votes

Répéter une notification locale après tous les 14 jours (deux semaines)?

Dans mon application, j'ai à définir le répétitif uilocalnotification code>. Je suis capable de définir le RepeatInterval comme quotidiennement, hebdomadaire, etc. en faisant

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.repeatInterval = NSDayCalendarUnit; // or any other calendarUnit


2 commentaires

Quelqu'un comment est-il possible d'utiliser RepeatInterval autre que Nscalendarunit?


Pourquoi ne pas résoudre cela en utilisant un calendrier avec une semaine de 14 jours? Semble que cela devrait fonctionner. Ensuite, la biweekly (semaine de 7 jours) se transforme en un cycle de répétition simple hebdomadaire (14 jours).


3 Réponses :


7
votes

Vous ne pouvez définir que l'intervalle de répétition dans une unité de calendrier. Afin d'obtenir le bon intervalle de temps, vous devrez peut-être définir plusieurs notifications.

Si vous vouliez par exemple une notification toutes les 20 minutes, vous devez créer 3 notifications 20 minutes à distance avec un intervalle de répétition de Nshourcalendarunit.

Le problème dans votre cas est que la prochaine chose à partir de la semaine est un mois, mais un mois n'est pas exactement de 4 semaines.

Pour définir une notification pour tous les 14 jours, vous devrez créer 26 notifications avec un intervalle de répétition de NSYARCALENDARUNIT.


7 commentaires

Merci de votre aide, mais une plus grande limitation de la notification locale est que nous pouvons utiliser un maximum de notifications de 64 et que je dois définir le répétitif de type quotidiennement, hebdomadaire, 14 jours, mensuels, etc. et ici, il est possible que la notification compte de la notification Cross limite de 64 ans?


Le Max est une considération, mais vous avez des types de calendrier pour tous les jours, hebdomadaires et mensuels, ils n'auront donc besoin que d'une notification chacune. Si vous utilisez une hebdomadaire, avez-vous également besoin d'une notification de 14 jours?


Oui, infecte j'ai besoin quotidiennement, par hebdomadaire (2 fois par semaine), une répétition hebdomadaire, 14 jours et mensuelle.


Ok .. je pense que c'est le seul moyen d'y parvenir, merci de votre aide


Vous voudrez peut-être considérer que la planification ne peut-être qu'un mois à l'avance, puis lorsque l'application est chargée, vérifiez si vous devez planifier un autre mois à l'avance. Si un utilisateur n'a plus ouvert l'application dans un mois, ils ne sont probablement pas intéressés ...


@Bharat, avez-vous un lien vers la documentation où il mentionne une limite de notifications s'il vous plaît?


Recherchez "Cover 64 notifications" dans développeur. Apple.com/library/ibli/documentation/iphone/referen CE / ... ou voir les commentaires dans blog.mugunthkumar.com/coding/...



1
votes

Vous pouvez annuler la notification et définir une nouvelle date d'incendie à 14 jours lors de la gestion de la notification. C'est-à-dire quand votre application est en cours d'exécution au premier plan, faites-le dans:

(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification


1 commentaires

Ce rappel ne fonctionne pas si l'application est en arrière-plan et que l'utilisateur ne rejette pas l'alerte de notification



0
votes

dans iOS 10, vous pouvez utiliser elumeIntervalnotificationTrigger code> pour répéter la notification après 14 jours.

UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:(14*24*3600) repeats: YES];
NSLog(@"td %@", trigger.nextTriggerDate);

UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier content:content trigger:trigger];

[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
    if (error != nil) {
        NSLog(@"Something went wrong: %@",error);
    } else {
        NSLog(@"Created! --> %@",request);
    }
}];


0 commentaires