如何使用 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