0

我正在开发使用Ionic 2的应用程序。此应用程序必须接收推送通知。如何接收应用程序停止或设备关机时发送的GCM推送通知?

在某些情况下,应用程序将会像Android中的“Force Stop”选项一样被杀死。在其他情况下,设备将被关闭。在这种情况下,即使启用了背景模式插件,我的应用也不会收到推送通知。

无论如何,我知道推送通知存储在一个地方,在一个队列等待交付。当我再次开始我的应用程序时,应用程序不会自动接收我的应用程序未运行时发送的通知。如果此时我收到新通知,则在我的应用停止时发送的所有通知都会被我的应用收到。

我的问题是我该如何强制我的应用程序接收应用程序停止时发送的通知或要求GCM发送此通知?

+0

虽然这[SO问题](http://stackoverflow.com/questions/12073449/android-gcm-push-notification-device-doesnt-receive-notification-if-applicat?rq=1)是在android中,我认为它可以让你了解GCM如何在应用程序停止时工作。 – KENdi

+0

感谢您的回复。本主题不涉及完全相同的问题。他们谈论接收者侦听器如何不被调用** WHILE **应用程序被强制关闭。我的疑问是关于如何接收发送的消息** WHILE **该应用程序强制关闭**后**重新打开。我知道这是可能的,因为我做了一个测试。但要接收应用程序强制关闭时发送的通知,GCM需要发送新通知。即使设备关闭时发送的消息也可以看到此行为。 – Natanael

回答

0

如果您的应用程序停止(而不仅仅是在后台)使用GCM,则应用程序无法接收GCM消息。这些消息将会丢失。

如果您的设备没有连接,例如:关闭,则可以通过GCM保存消息(请参阅time_to_live字段),然后当设备重新联机时,将发送消息,如果应用程序以前没有停止过它会收到消息。

+0

感谢您的回复,但这不完全是答案。你离得很近。它看起来time_to_live默认是4周。此处需要的属性delay_while_idle为true。如我错了请纠正我。 – Natanael

0

解决!

问题是后端的GCM配置后端不在我的应用前端。

根据this documentation“delay_while_idle”必须设置为true。

即使关闭设备或终止应用程序,更改此属性还是会传递消息。一旦设备转动或应用程序打开,mensagens就会被发送。

相关问题