Wie lege ich NSCalendarUnitMinute repeatInterval auf iOS 10 UserNotifications fest?

8

In UILocalNotification verwenden wir NSCalendarUnitMinute wie Wiederholung ..... aber ich kann in iOS 10 UserNotification doc nicht finden ... Wie kann ich NSCalendarUnitMinute wie Wiederholung in iOS 10 UserNotification verwenden?

Hier ist der Code, der die lokale Benachrichtigung um 20:30 Uhr einplant und nach jeder Minute wiederholt.

%Vor%     
S.J 14.06.2016, 06:18
quelle

3 Antworten

2

Obwohl es scheint, dass das alte Benachrichtigungs-Framework diesbezüglich eine bessere Unterstützung hatte, ist es erst, bis wir erkennen, dass das neue besser ist!

Ich hatte ähnliche Probleme, und unten ist ein Beispiel dafür, wie die alten Benachrichtigungen mit den neuen Hand in Hand gehen können.

Um auf einer sicheren Seite zu sein, ist dies Swift2.3 .

%Vor%

Obwohl dies nicht erschöpfend ist, habe ich alles von einer Minute bis zu einem Jahr abgedeckt.

Und um genauer zu sein,

%Vor%

Da dies für mich funktioniert, sollte es wahrscheinlich für den Rest von euch sein. Bitte versuchen Sie und lassen Sie mich wissen, wenn es ein Problem gibt.

Und für die genaue Lösung dieser Frage rate ich folgendes:

(Wahrscheinlich hat Apple an ein solches Szenario nicht gedacht, aber es kann behandelt werden)

  1. Planen Sie eine Benachrichtigung für 20.30 Uhr
  2. Wenn die Benachrichtigung ausgelöst wird, entfernen Sie sie und planen Sie eine weitere Benachrichtigung mit einem anderen Bezeichner für das oben gezeigte NSCalendarUnitMinute -Äquivalent.
  3. Voila, es funktioniert !! (Oder nicht?)
Shyam 30.09.2016 06:00
quelle
1

Verwenden Sie eine UNCalendarNotificationTrigger mit DateComponents anstelle von NSCalendar :

%Vor%

Sie haben das Datum mit einer Instanz DateComponents eingerichtet und angegeben, ob die Benachrichtigung mit dem Parameter repeats des Initiators UNCalendarNotificationTrigger wiederholt werden soll.

UNCalendarNotificationTrigger-Dokumentation

Nur ein Hinweis darauf, dass es in den Apple Docs einen Tippfehler gibt (Stand 6/13). Wenn Sie NSDateComponents anstelle von DateComponents verwenden, müssen Sie Ihre date as DateComponents explizit in den Parameter dateMatching umwandeln.

Als Antwort auf Ihren Kommentar glaube ich nicht, dass das von Ihnen gewünschte Verhalten (Änderung der Häufigkeit Ihrer wiederholten Benachrichtigung) von UNCalendarNotificationTrigger unterstützt wird.

    
JAL 14.06.2016 06:21
quelle
0

Bear mit mir das ist mein erster Beitrag.

Wir brauchten das Wiederholungsintervall von 1 Minute für unsere App in ios 10 und verwendeten als Workaround eine Kombination aus altem und neuem Framework.

  1. Planen Sie die wiederholten lokalen Benachrichtigungen mit dem alten:

    UILocalNotification * ln = [[UILocalNotification alloc] init];
    ...
    ln.repeatInterval = kCFCalendarUnitMinute;
    ln.userInfo = @ {@ "alarmID": ...}
    ...
    [[UIApplication sharedApplication] scheduleLocalNotification: ln];

Dies erstellt und plant die üblichen wiederkehrenden LNs, die als UNNotification mit einem UNLegacyNotificationTrigger angezeigt werden

Ich habe eine alarmID verwendet, um altes und neues Framework zu verbinden.

Versuchen Sie:

%Vor%
  1. Beantworten von Aktionen und Auslösen von Benachrichtigungen, Manipulieren des Benachrichtigungszentrums:

Mit den neuen Framework UNUserNotificationCenter-Methoden: willPresentNotifikation: didReceiveNotificationResponse:

  1. Anfrage Autorisierung und Kategorie Registrierung Ich habe für beide Frameworks in der üblichen Weise.

Hoffe, das hilft

    
MauritsK 27.09.2016 13:04
quelle