如何静音推送通知?

Posted

技术标签:

【中文标题】如何静音推送通知?【英文标题】:How to mute push notifications? 【发布时间】:2021-05-09 12:53:54 【问题描述】:

我正在使用 Cordova FCM 插件为 androidios 推送通知。 我想允许客户将通知静音 - 只是静音,而不是阻止它们。

但我不知道怎么做。我知道我可以首先从服务器发送没有声音 - 但在这种情况下 - 每个人都不会收到声音,这不是目的。我通常会从服务器发送主题,但我无法确定是谁将他的客户端配置为静音通知。

这是否可以从客户端的应用程序中设置静音? WhatsApp 如何处理这个问题(您可以将通知静音但不能完全阻止它们)?

【问题讨论】:

在 iOS 上,用户可以使用静音开关将手机静音,或在设置应用中更改特定应用的通知设置。如果您想从您身边管理它,您需要在您的数据库中记录哪些用户不想要声音,哪些用户不需要声音,并向两组发送不同的通知。一般来说,让用户在他们的设备上管理它会更简单。 你的意思是 - 如果用户没有切换到静音,他将订阅主题 X,如果他确实切换到静音,他将订阅 X-Muted(并取消订阅 X,课程)。然后从我的服务器无论如何我都会为 X 和 X-Muted 发射。 是的,你可以这样做,但正如我所说,我不会这样做。我会让用户通过他们的设备设置来控制它。 【参考方案1】:

对于 iOS, 当请求用户权限时,我们传递所需值的数组

UNUserNotificationCenter.current() 
.requestAuthorization(options: [.alert, .sound, .badge])  granted, _ in
  print("Permission granted: \(granted)")

从上面,只需从选项数组中删除.sound

【讨论】:

以上是关于如何静音推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

在推送通知中振动

忽略手机静音模式

有没有办法让应用程序将通知更改为静默通知(不是服务器)以进行推送通知

无声推送通知有效负载

使用firebase发送静默推送通知,以便在应用程序被杀死时唤醒它

推送通知 vs 本地通知 vs 电话 vs 请勿打扰