在Android和iOS上使用GCM而不需要通知负载

11

我想使用Google Cloud Messaging在Android和iOS上实现推送通知。

我不想在有效负载中使用notification键,因为Android的行为不理想。在Android上,我更喜欢我的接收器始终使用data有效负载触发,并且我可以使用NotificationCompat构建Notification。如果在Android上使用notification有效负载,您将无法控制通知样式,例如。

然而,如果我只发送data有效负载,我认为我的iOS应用程序在后台运行时将无法接收到推送-被杀死、从未启动过自设备重新启动等。我认为GCM有一个 content_available标志,它可能会触发推送通知?

在iOS上,我能否复制Android的行为,使我的应用程序代码始终执行通知操作? 我可以基于GCM data有效负载构建自己的iOS通知,也许使用像 UILocalNotification 这样的东西,但据我所读,iOS需要存在 notification 有效负载,以确保用户始终收到推送通知。

我能在iOS上获得这种控制吗?


如何避免在Android通知中心显示通知。即使我不在GCM消息中包含通知负载,通知也会以空白文本和应用程序名称作为标题显示。 - VishalKale
搞定了。将content_available设置为false,无论应用程序在后台还是前台都不会显示任何通知。我可以在onMessageReceived中处理通知。 - VishalKale
2个回答

1

您需要将content_available标志禁用为false,以便在iOS上按预期工作并在Android上提供完全控制。

来源:- 我最近在Android和IOS上都处理了推送通知。


好的,那我是不是应该自己构建一个UILocalNotification? - Anthony Chuinard

0
从我的研究来看,似乎你无法避免使用notification负载。但是,如果你创建一个自己的GcmListenerService并扩展普通的Service,而不是创建一个扩展GcmListenerServiceMyGcmListenerService,则可以摆脱默认的Android行为,即自动创建通知。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接