安装 firebase 后生成推送通知

Posted

技术标签:

【中文标题】安装 firebase 后生成推送通知【英文标题】:Generating push notifications after installing firebase 【发布时间】:2018-08-04 11:16:33 【问题描述】:

我已将Firebase 集成到我的项目中,并且我认为我已遵循在应用程序中生成推送通知所需的所有步骤。我还通过从 Firebase 控制台发送一些虚拟通知来测试推送通知。

This 是我完全遵循的教程。

现在我的问题是..

    我将如何获得 FCM ID 以便可以在我的 api 调用中发送它。 当推送通知到来时,我在哪里处理它..? 我在哪里提到诸如何时接收通知以及在点击通知时要执行的操作等内容......?

编辑 1

这就是我处理推送通知的所有代码...

didFinishLaunchingWithOptions...

    if #available(ios 10.0, *) 
        // For iOS 10 display notification (sent via APNS)
        UNUserNotificationCenter.current().delegate = self
        let authOptions: UNAuthorizationOptions = [.alert, .sound]
        UNUserNotificationCenter.current().requestAuthorization(
            options: authOptions,
            completionHandler: _, _ in )
        // For iOS 10 data message (sent via FCM
        Messaging.messaging().delegate = self
     else 
        let settings: UIUserNotificationSettings =
            UIUserNotificationSettings(types: [.alert, .sound], categories: nil)
        application.registerUserNotificationSettings(settings)
    

    application.registerForRemoteNotifications()

    FirebaseApp.configure()

然后,

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) 
    let token = Messaging.messaging().fcmToken
    print("FCM token: \(token ?? "")")


func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any])
    print("userInfo:->  \(userInfo)")


【问题讨论】:

【参考方案1】:

Q1 :- 第一种方法 Q2&3 :- 第二种方法

     func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) 
                let token = Messaging.messaging().fcmToken
                print("FCM token: \(token ?? "")")
         

         func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any])
         print("userInfo:->  \(userInfo)")
        

     func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 

            print("userInfo:->  \(userInfo)")
            let redirect_flag = userInfo["redirect_flag"]as! String

            if application.applicationState == .inactive 
              // handle when you background 
         
    else
          // Here You need to handle all terms which you handle in 
             didReceiveRemoteNotification  method
    

【讨论】:

我已经使用推送通知的代码编辑了问题。这就是所需要的一切吗..?我会在didReceiveRemoteNotification.. 中获得推送通知的所有详细信息吗? @v.bw 是的,您将获得该方法的所有详细信息 @v.bw 不提 还有一个问题@Tm Goyani...希望您不介意..:) 当应用程序处于前台和后台时,我可以通过哪些方法处理通知..? @v.bw 如果您想使用上面的 IOS 10 并喜欢这两种方法,这两种方法都需要

以上是关于安装 firebase 后生成推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Ionic Firebase 推送通知问题

部署 Firebase 推送通知功能时出错

如何快速刷新 Firebase 推送通知

Firebase Analytics iOS/Unity 推送通知?

Cordova Firebase 插件:安装新应用时,Apple 推送通知有时不起作用

未使用 firebase 和 Objective C 接收推送通知