我正在使用推送工具包并接收消息,但通知中心未显示该消息

Posted

技术标签:

【中文标题】我正在使用推送工具包并接收消息,但通知中心未显示该消息【英文标题】:I am using push kit and and receiving message but notification centre not showing that message 【发布时间】:2016-08-29 09:15:23 【问题描述】:

我正在实现推送工具包并在委托方法“didReceiveIncomingPushWithPayload”中接收远程通知,但通知中心没有显示该消息。我已经在我的设备中检查了“通知-> 应用”允许通知并在通知中心显示选项已启用。

【问题讨论】:

【参考方案1】:

如果您使用以下方法。

func pushRegistry(registry: PKPushRegistry!, didReceiveIncomingPushWithPayload payload: PKPushPayload!, forType type: String!) 

然后,pushkit 有助于获得静默推送通知,远程通知不会像简单的 APNS 那样进入通知中心。

现在,当您收到带有所需信息的远程通知时,您必须通过此方法安排UILocalNotification,它将进入通知中心。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 

       if let notification:UILocalNotification = launchOptions?[UIApplicationLaunchOptionsLocalNotificationKey] as? UILocalNotification 

       

即使您可以将 UILocalNotification 对象保留在 NSUserDefault 中,所以您可以在 didFinishLaunchingWithOptions 中检索它,以防用户设备正在重新启动并且通知信息非常重要。

【讨论】:

感谢@Hasya,我正在点击任何通知,然后在 didFinishLaunchingWithOptions 委托方法中,launchOptions 字典为零。因此,无法检测到点击了哪个通知。 如果您从 didReceiveIncomingPushWithPayload 安排 UILocalNotification 并且当您点击通知时,您必须在 didFinishLaunchingWithOptions 中获取它。检查我的更新答案。 得到了解决方案,感谢您的快速反馈@Hasya,当我点击通知时,会调用 didReceiveLocalNotification 委托方法。 欢迎您,如果我的回答对您有价值,请接受。祝您编码愉快。

以上是关于我正在使用推送工具包并接收消息,但通知中心未显示该消息的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Firebase 消息传递 - 应用打开时未显示推送通知

从 appery 发送时,iPhone 上未收到推送通知消息

网络推送通知未显示

收到 iOS 推送通知但未显示任何消息

推送通知不适用于 testflight 和 xcode 8 beta

某些设备未收到 Apple 推送通知