ios - 管理用户的时区和本地时间

标签 ios swift timezone

我正在构建一个移动应用。

我想知道我应该如何实现这种(简化的)场景:

每年每天早上 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/

相关文章:

objective-c - 围绕底轴旋转 UIImageView - Objective-C/iOS

ios - 尝试在 iPhone 应用程序中播放音频时出错

javascript - Google Script/JavaScript 在时区之间转换时间

ios - 如何检查访问 token 是否仍然有效?

ios - 需要指导来维护每个 Tableview 单元格的 NSTimer

ios - 防止 UISplitViewController 在详细 View 中单击时关闭主选项卡?

ios - 从 swift uiwebview 打印

swift - 无法推断通用参数 T

php - 使时区下拉列表填充每个国家/地区的可用时区?

java - Java/MySQL 中没有时间或时区组件的日期