didReceiveRemoteNotification function doesn#39;t called with FCM notification server(不使用 FCM 通知服务器调用 didReceiveRemoteNotification 函数)

本文介绍了不使用 FCM 通知服务器调用 didReceiveRemoteNotification 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 FCM 服务器进行远程通知,它可以完美地发送和接收通知.

I'm using FCM server for remote notifications, it worked perfectly with sending and receiving notifications.

我的问题是当设备在后台时,这个函数 func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 没有调用.

My problem is when the device is in the background, this function func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) doesn't called.

我尝试过的解决方案:

  • 这个函数:

  • This function:

userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)

在用户点击通知时调用.否则不会触发.

is called when user tapped on the notification. Otherwise, it's not triggered.

  • "content-available": true, "priority": "high" 添加到有效负载中.另外,我尝试了这个值 "content-available": 1.

  • Adding "content-available": true, "priority": "high" to the payload. Also, I tried this value "content-available": 1.

这是我的功能代码:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                     fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        
        print("userInfo: (userInfo)")
      completionHandler(.newData);
  
    }

推荐答案

如果您使用 Postman 进行测试,请尝试将 "content-available": true 更改为 content_available":是的.content-available 会发送通知,但不会调用 didReceiveRemoteNotification.

If you are testing with Postman then try changing "content-available": true to "content_available" : true. content-available will send notification but it doesn't call didReceiveRemoteNotification.

这篇关于不使用 FCM 通知服务器调用 didReceiveRemoteNotification 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!