我正在构建一个移动应用。
我想知道我应该如何实现这种(简化的)场景:
每年每天早上 8:00 向来自世界各地的用户发送推送通知。
问题是每个用户都在不同的时区。一些国家将他们的本地时间在夏令时\冬令时移动±1小时。
我可以为每个用户保留 UTC ± H,但仍然..我每天需要运行相同的任务超过 24 次 (as the number of timezones)
有没有更好的办法?
处理多区域用户计划任务的最佳实践?
谢谢。
最佳答案
不要为服务器上的每个时区分段和触发推送通知,因为您无法在早上 8:00 将它们全部发送出去(您的服务器会阻塞并死机)。只需向所有手机发送静默推送通知,告诉应用程序它应该在本地时间何时触发通知。然后在 func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any])
让每部手机解析静默通知,将请求时间转换为本地日期时间(请参阅 DateComponents)并创建一个 UNNotificationRequest(iOS 10)或 UILocalNotification(iOS 9 及更早版本),它们将在正确日期的上午 8 点触发.
关于ios - 管理用户的时区和本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40166117/