iOS Firebase/APNS根据本地时间或时区推送通知声音

iOS Firebase/APNS根据本地时间或时区推送通知声音,ios,swift,firebase,apple-push-notifications,firebase-cloud-messaging,Ios,Swift,Firebase,Apple Push Notifications,Firebase Cloud Messaging,我正在使用FCM发送全球使用的应用程序的iOS推送通知。不同的用户在不同的时区 是否有办法规定,当在当地时间周一至周五(8:00-17:00)的工作时间交付时,它将有声音,但任何其他时间都不会有声音。我不想在晚上打扰用户 这个问题主要是关于当我的应用程序没有运行/后台运行/挂起(例如重新启动后)和/或脱机时最糟糕的情况 。我的应用程序使用后台获取,但这并不保证它将在推送通知传递时运行 问题是我事先不知道推送通知何时发送。如果我知道,我会在JSON中指定sound键。 发送推送通知时,用户可能处于

我正在使用FCM发送全球使用的应用程序的iOS推送通知。不同的用户在不同的时区

是否有办法规定,当在当地时间周一至周五(8:00-17:00)的工作时间交付时,它将有声音,但任何其他时间都不会有声音。我不想在晚上打扰用户

这个问题主要是关于当我的应用程序没有运行/后台运行/挂起(例如重新启动后)和/或脱机时最糟糕的情况 。我的应用程序使用后台获取,但这并不保证它将在推送通知传递时运行

问题是我事先不知道推送通知何时发送。如果我知道,我会在
JSON
中指定
sound
键。 发送推送通知时,用户可能处于脱机状态

例如,我在晚上发送推送通知时没有声音,但用户在白天启用internet连接并在没有声音的情况下接收通知(因为它是在晚上发送的)

在服务器上安排发送时间并不能解决这个问题,因为我们无法控制发送时间

如果可以在没有Firebase的情况下直接使用APN,那么也可以解决我的问题。

多谢各位

澄清:

当我的应用程序运行时,我有足够的控制权根据当地时间决定是否播放声音。这个问题是针对我的应用程序没有运行/背景设置/挂起的另一种情况


我使用静默数据通知(
JSON
key
data
,其中
content available=1
)来传递所有必要的信息,但当我的应用程序未运行时,只有一种方法可以发送将显示的通知,即
显示通知(
JSON
key
通知

你把事情弄得太复杂了。大多数通知都是在发送后几秒钟内收到的。唯一的一个大例外是长途飞行的人。在大多数情况下,用户的设备上都会有适当的设置,但如果您知道用户的时区,您可以在发送时根据该时区进行调整,您可能99%的时间都是正确的。请注意,如果您确实想控制这一点,还有一种替代方法:向您的应用程序发送静默通知,然后将根据本地时间使用本地通知。但是请注意,在这种情况下,丢失通知或严重延迟的概率更高。我已经在使用静默通知,但在重新启动后的情况下,它们不会启动我的应用程序。如果他们愿意,这将解决我的问题,但我在谷歌上搜索到,在用户启动我的应用程序或后台提取启动我的应用程序之前,这是不可能的。你真的太复杂了。大多数通知都是在发送后几秒钟内收到的。唯一的一个大例外是长途飞行的人。在大多数情况下,用户的设备上都会有适当的设置,但如果您知道用户的时区,您可以在发送时根据该时区进行调整,您可能99%的时间都是正确的。请注意,如果您确实想控制这一点,还有一种替代方法:向您的应用程序发送静默通知,然后将根据本地时间使用本地通知。但是请注意,在这种情况下,丢失通知或严重延迟的概率更高。我已经在使用静默通知,但在重新启动后的情况下,它们不会启动我的应用程序。如果他们愿意,这将解决我的问题,但我在谷歌上搜索到,在用户启动我的应用程序或后台提取启动我的应用程序之前,这是不可能的