带有 GCM 的 iOS 推送通知

Posted

技术标签:

【中文标题】带有 GCM 的 iOS 推送通知【英文标题】:iOS Push Notification with GCM 【发布时间】:2016-05-04 12:18:57 【问题描述】:

我正在使用 GCM 向 ios 应用程序发送远程通知,在前台和后台都收到通知,但在后台通知没有在应用程序图标上显示带有声音和徽章编号的横幅,我的哪些字段应该添加以及我应该添加它们的位置

【问题讨论】:

你在func应用程序中试过了吗(应用程序:UIApplication,didReceiveRemoteNotification userInfo:[NSObject:AnyObject],fetchCompletionHandler handler:(UIBackgroundFetchResult)-> Void) 是的,收到通知并调用了这个方法,但是问题在,通知没有显示为横幅 好的,所以通知没有问题,检查你的横幅代码,只需做一件事,将本地通知放在不同的代码级别,了解哪里出了问题。 【参考方案1】:

我试过了,效果很好。它是这样工作的:

您在 google 控制台创建应用程序条目。 在创建向导中上传开发和生产认证。 您必须上传两者并按照docs 中的步骤操作。

逻辑如下:

我们照常从 apns 请求设备令牌。 然后我们使用提供的 api 将该令牌发送到 gcm 服务。 然后 gcm 发回另一个令牌。 我们将该令牌发送到应用服务器。 应用服务器可以使用该令牌发送通知。

很酷的功能。 GCM for iOS 有一些很酷的功能:

订阅基于特定主题的通知。 忽略其他人。 在应用内向其他设备发送通知。

更新:现在是大写字母 G 的 Google。

如果您想尝试 google 示例应用程序。只是 pod try Google.

【讨论】:

【参考方案2】:

如果您在后台收到远程通知。您的 content-available = 1 字段可能已经在 json 有效负载中,因此请向您的设备发送本地通知和横幅以执行您想做的所有其他事情。

let localNotification = UILocalNotification()
localNotification.soundName = UILocalNotificationDefaultSoundName //If you want an alert sound.
localNotification.alertBody = "You received notification" //Put your notification message here
localNotification.applicationIconBadgeNumber += 1 //Change what the badge number should be

UIApplication.sharedApplication().presentLocalNotificationNow(localNotification)

将此代码放在一个函数中,并在收到远程通知时调用它。

【讨论】:

以上是关于带有 GCM 的 iOS 推送通知的主要内容,如果未能解决你的问题,请参考以下文章

gcm推送通知:先成功,后IOS未注册

带有 iOs 的 Phonegap 推送通知插件

GCM iOS 没有收到推送通知

GCM - iOS 客户端控制推送通知?

iOS 推送通知和 GCM

带有 C# asp.net 的 GCM 推送通知在 android 设备中提供 null 作为通知