我正在制作移动应用。
我想知道我应该如何实现这种(简化)方案:
每年上午8:00向全世界的用户发送推送通知。
问题是每个用户都在不同的时区。有些国家在夏季或冬季将当地时间缩短了±1小时。
我可以为每个用户保留UTC±H,但仍然......我需要每天运行相同的任务超过24次(as the number of timezones)
有更好的方法吗?
使用多区域用户处理预定任务的最佳做法?
感谢。
答案 0 :(得分:1)
不要打扰为服务器上的每个时区分段和触发推送通知,因为你无法在上午8点完全发送它们(你的服务器会窒息死亡)。只需向所有手机发送静音推送通知,告知应用程序何时应在当地时间引发通知。然后进去 func应用程序(_ application:UIApplication,didReceiveRemoteNotification userInfo:[AnyHashable:Any])
让每个手机解析静默通知,将请求时间转换为本地日期时间(请参阅DateComponents)并创建一个UNNotificationRequest(iOS 10)或UILocalNotification(iOS 9及更早版本),它将在正确日期的上午8点启动