如何使用 FCM 触发横幅通知



如何使用 Firebase 的 FCM 功能在应用中显示横幅?我能够通过苹果提供的委托方法接收和显示横幅通知:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
  completionHandler([.alert, .badge, .sound])
}

但是,一旦我尝试使用 FCM,就不再调用此方法。相反,此方法接收通知信息:

extension FirebaseNotificationManager: FIRMessagingDelegate {
  func applicationReceivedRemoteMessage(_ remoteMessage: FIRMessagingRemoteMessage) {
    let appData = remoteMessage.appData
    appData.forEach { print($0) }
  }
}

我可以打印appData,但我不确定如何实际显示横幅警报。

任何帮助不胜感激!

我正在将其用于iOS 10并为我工作。

- (void)userNotificationCenter:(UNUserNotificationCenter *)center
   willPresentNotification:(UNNotification *)notification
     withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler 
 {
        NSDictionary *userInfo = notification.request.content.userInfo;
        // Print full message.
         NSLog(@"%@", userInfo);
// Change this to your preferred presentation option
      completionHandler(UNNotificationPresentationOptionAlert);
}

经过一天的研究和实验,我得出结论,在这种情况下,没有必要连接到Firebase FCM。

如果您连接到 FCM,则需要依靠 Firebase 的applicationReceivedRemoteMessage方法来处理传入的推送通知。我仍然无法弄清楚如何通过该方法显示横幅通知。

但是,主要目标是访问推送通知发送的键值对。没有必要通过Firebase的自定义对象来访问这些对象。

每个UNNotification对象都有一个userInfo字典(尽管它的嵌套相当严重(:

let userInfo = response.notification.request.content.userInfo

这将包含在FIRMessagingRemoteMessage中找到的相同信息:

let appData = remoteMessage.appData

相关内容

  • 没有找到相关文章

最新更新