2016-10-20 3 views
0

Ich baue eine mobile App.Zeitzonen und lokale Zeiten von Benutzern verwalten

Ich frage mich, wie soll ich diese Art von (vereinfacht) Szenario implementieren:

Benutzer senden aus der ganzen Welt eine Push-Benachrichtigung um 08:00 Uhr jeden Tag des Jahres.

Das Problem ist, dass jeder Benutzer in einer anderen Zeitzone ist. und einige Länder verschieben ihre Ortszeit im Sommer/Winter um ± 1 Stunde.

kann ich die UTC ± H für jeden Benutzer halten, aber immer noch .. Ich muß die gleiche Aufgabe mehr als 24 mal am Tag (as the number of timezones)

Gibt es einen besseren Weg laufen?

Best Practices für geplante Aufgaben mit Mehrzonenbenutzern?

Danke.

+0

Sie können Zeitzonen mit NSTimeZone definieren .... überprüfen Sie die Apple Doc https://developer.apple.com/reference/foundation/nstimezone – Joe

Antwort

1

Machen Sie sich nicht die Mühe, die Push-Benachrichtigungen für jede Zeitzone auf dem Server zu segmentieren und abzufeuern, denn Sie können sie nicht genau um 8:00 Uhr rausschicken (Ihr Server würde würgen und sterben). Senden Sie einfach allen Telefonen eine stille Push-Benachrichtigung, die der App mitteilt, dass sie die Benachrichtigung in Ortszeit auslösen soll. Dann in func Anwendung (_ Anwendung: UIApplication, didReceiveRemoteNotification userinfo: [AnyHashable: Alles])

haben jedes Telefon die stille Benachrichtigung analysieren, die Anforderungszeit in ein lokales Datum Zeit konvertieren (siehe DateComponents) und erstellen Sie ein UNNotificationRequest (iOS 10) oder UILocalNotification (iOS 9 und früher), die um 8 Uhr am richtigen Datum ausgelöst werden.

+0

aaah, so eine Erleichterung. Ich bin noch nicht vertraut mit den Optionen, die ich Benachrichtigungen auf der Clientseite verwalten muss. Gute Antwort. Vielen Dank! –

Verwandte Themen