如何使用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
的打印输出,但我不确定如何实际显示横幅提醒。
感谢任何帮助!
答案 0 :(得分:0)
我在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);
}
答案 1 :(得分:0)
经过一天的研究和实验,我得出结论,对于这种情况,没有必要连接到Firebase FCM。
如果您连接到FCM,则需要依靠Firebase的applicationReceivedRemoteMessage
方法来处理传入的推送通知。我仍然无法弄清楚如何通过该方法显示横幅通知。
但是,主要目标是访问推送通知发送的键值对。没有必要通过Firebase的自定义对象来访问它们。
每个UNNotification
对象都有一个userInfo
字典(虽然它的嵌套相当严重):
let userInfo = response.notification.request.content.userInfo
这将包含FIRMessagingRemoteMessage
中的相同信息:
let appData = remoteMessage.appData