如何在前台 iOS Swift 3.0 中接收推送通知?

Posted

技术标签:

【中文标题】如何在前台 iOS Swift 3.0 中接收推送通知?【英文标题】:How to Receive Push Notifications in Foreground iOS Swift 3.0? 【发布时间】:2017-09-20 05:19:44 【问题描述】:

我想以前台状态显示 ios 8.0 的推送通知。我在后台状态下收到通知,但不是在前台状态下。

【问题讨论】:

Registering for Push Notifications in Xcode 8/Swift 3.0?的可能重复 @Hexfire 我想在 iOS 8.0 的前台状态下显示推送通知,我在后台状态下接收通知 Get push notification while App in foreground iOS的可能重复 @Hexfire 那是针对 +iOS10 的。这个问题是针对iOS8的。所以你问错问题了。它是 another 问题的副本 你有什么解决办法吗?我也遇到了这个问题 【参考方案1】:
extension AppDelegate: UNUserNotificationCenterDelegate 

    // Receive displayed notifications for iOS 10 devices.
    func userNotificationCenter(_ center: UNUserNotificationCenter,
                                willPresent notification: UNNotification,
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) 

        completionHandler(UNNotificationPresentationOptions.alert)

        //completionHandler([.alert,.badge])
        let userInfo = notification.request.content.userInfo
        if let messageID = userInfo[gcmMessageIDKey] 

        

        // Print full message.
        print(userInfo)
        completionHandler([])
    

    func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response:UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void) 
        let userInfo = response.notification.request.content.userInfo

        // Print message ID.
        if let messageID = userInfo[gcmMessageIDKey] 
            print("Message ID: \(messageID)")
        

        // Print full message.
        print(userInfo)
        completionHandler()
    

【讨论】:

completionHandler(UNNotificationPresentationOptions.alert) 是您所需要的。 那是 iOS10 的。这个问题是关于 iOS 8 的。见here @Honey 你能告诉我按照我的代码我会怎么做 @CtanLi 也因为我已经在 iOS 10 中收到了我想要在 iOS 8 中的前台通知

以上是关于如何在前台 iOS Swift 3.0 中接收推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

iOS10 (Swift 3.0) 中弃用 UILocalNotification 接收功能

应用在前台时如何触发苹果推送通知事件?

如何在应用程序后台接收FCM推送通知数据,但在前台点击

管理推送通知

如何在前台接收推送通知时显示颤振本地通知?

在 Swift iOS 中推送通知