gpt4 book ai didi

ios - FCM 推送通知在 iOS 11 上不起作用

转载 作者:IT王子 更新时间:2023-10-29 08:08:53 25 4
gpt4 key购买 nike

我使用 Firebase 作为后端。我还将 FCM 用作 Firebase 提供的功能之一。 FCM 在 iOS 10 中运行良好,但在切换到 iOS 11 后,推送通知停止发送到用户设备,我自己也没有收到任何从云功能或 Firebase 控制台中的通知部分发送的推送通知。如何解决这个问题?

更新:我从 Firebase 通知发送了几个推送通知,但没有收到。

// MARK: - Push notification

extension AppDelegate: UNUserNotificationCenterDelegate {

func registerPushNotification(_ application: UIApplication) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self

let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })

// For iOS 10 data message (sent via FCM)
Messaging.messaging().delegate = self
}

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
//When the notifications of this code worked well, there was not yet.
Messaging.messaging().apnsToken = deviceToken
}

// [START receive_message]
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
// If you are receiving a notification message while your app is in the background,
// this callback will not be fired till the user taps on the notification launching the application.
// TODO: Handle data of notification
// Print message ID.
if let messageID = userInfo[gcmMessageIDKey] {
debugPrint("Message ID: \(messageID)")
}

// Print full message.
debugPrint(userInfo)
}

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// If you are receiving a notification message while your app is in the background,
// this callback will not be fired till the user taps on the notification launching the application.
// TODO: Handle data of notification
// Print message ID.
if let messageID = userInfo[gcmMessageIDKey] {
print("Message ID: \(messageID)")
}

// Print full message.
debugPrint(userInfo)

completionHandler(.newData)
}

// showing push notification

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
if let userInfo = response.notification.request.content.userInfo as? [String : Any] {
let routerManager = RouterManager()
routerManager.launchRouting(userInfo)
}
completionHandler()
}

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
if let userInfo = notification.request.content.userInfo as? [String : Any] {
if let categoryID = userInfo["categoryID"] as? String {
if categoryID == RouterManager.Categories.newMessage.id {
if let currentConversation = ChatGeneralManager.shared.currentChatPersonalConversation, let dataID = userInfo["dataID"] as? String {
// dataID is conversationd id for newMessage
if currentConversation.id == dataID {
completionHandler([])
return
}
}
}
}
if let badge = notification.request.content.badge {
AppBadgesManager.shared.pushNotificationHandler(userInfo, pushNotificationBadgeNumber: badge.intValue)
}
}
completionHandler([.alert,.sound, .badge])
}

}

// [START ios_10_data_message_handling]
extension AppDelegate : MessagingDelegate {

func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
let pushNotificationManager = PushNotificationManager()
pushNotificationManager.saveNotificationTokenInDatabase(token: fcmToken, success: nil, fail: nil)
}


// Receive data message on iOS 10 devices while app is in the foreground.
func application(received remoteMessage: MessagingRemoteMessage) {
debugPrint(remoteMessage.appData)
}

}

最佳答案

似乎 FirebaseInstanceID 2.0.3 推送通知不起作用。它帮助我设置:pod 'FirebaseInstanceID', "2.0.0"。也许在下一个版本中会修复这个问题。

关于ios - FCM 推送通知在 iOS 11 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46391818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com