应用程序运行时在 iOS 中抑制/隐藏推送通知
Posted
技术标签:
【中文标题】应用程序运行时在 iOS 中抑制/隐藏推送通知【英文标题】:Suppress/Hide push notifications in iOS when the app is running 【发布时间】:2015-12-17 20:47:28 【问题描述】:我从我们拥有的通知服务器收到有关某些事件的推送通知。
我确实希望当应用在后台/前台不处于活动状态时显示这些通知警报
我不希望当应用程序在后台活动时出现通知警报(前台不是问题,因为通知不显示反正)。我只想显示我自己的本地通知。
有没有办法从代码中做到这一点?基本上我想隐藏远程推送通知,而是在我的应用程序处于活动状态时显示本地通知。
P.S - 发送静默通知的通知服务器不是一个选项 - 服务器不知道我们的应用程序何时运行/未运行。应用程序和此服务器之间没有通信。
【问题讨论】:
不,如果我能很好地理解您的目标,则没有任何方法可以在代码中执行此操作。推送警报将在“didReceiveRemoteNotification”等委托方法之前由系统传递。 “在后台活动”是什么意思?在一般情况下(有一些有限的例外情况),一旦您进入后台,超过 ios 提供的宽限期,您的应用就会被暂停。 是的,我指的是应用程序可以在后台运行的宽限期。 【参考方案1】:您可以先通知您的应用程序,然后再显示本地通知。要执行此操作,您只需从服务器发送content-available
通知。这会让您的应用收到通知,然后您可以决定是否显示本地通知。
【讨论】:
但是如果应用程序没有运行,我确实希望系统显示通知。特别是因为 didReceiveRemoteNotification withFetchHandler 并不总是会被调用,所以它不会在所有情况下唤醒我的应用程序。以上是关于应用程序运行时在 iOS 中抑制/隐藏推送通知的主要内容,如果未能解决你的问题,请参考以下文章