2016-07-05 44 views
0

当我们收到的推送通知而应用程序是在后台模式中,它会自动使用APS和其它参数,如声音,徽章,警报以产生在上面出现的通知。防止自动生成的推送通知

我想要的是防止自动生成的通知让它调用didReceiveRemoteNotification并生成我的自定义本地通知并将其显示在顶部和通知中心。

其原因在于该消息是根据在推送通知中接收到的一些数据之后本地管理的情况来定制的。

我还没有尝试过任何东西,因为我找不到任何解决方案。我甚至不知道这是否可能。

任何可以解决这种其他方式的帮助或其他建议是高度赞赏。

回答

1

你可以看看到iOS无声通知here

但是,你有2个不同的情况:

  • 1你的应用程序是在面前,并接收远程调用,并通知没有显示。

  • 2您的应用程序在后台,我不认为didreceiveRemove被调用。

所以在这两种情况下,你不会达到目的。你可能会尝试在发送之前自定义通知

+0

如果我们使用后台提取,会调用哪个方法。这给我们30秒的时间来执行指令? –

+1

如果通知有效载荷在'aps'字典中包含值'content-available:1',则在应用程序处于后台时调用应用程序'didReceiveRemoteNotification:fetchHandler:'。 – Avi

+0

谢谢@Avi。这将帮助我生成本地通知,但更大的问题是阻止自动生成的推送通知。 –

0

即使您的应用程序处于后台,暂停,不活动或终止,它也会被无声推送通知唤醒。 (注意:当应用程序没有被无声推动唤醒的唯一场景是当它已经被控制中心的用户杀死时)

因此,您可以发送静默推送,执行您需要执行的任何操作在数据上,然后生成一个本地的通知,将进入托盘。