#ios #flutter #push-notification #firebase-cloud-messaging
#iOS #flutter #push-уведомление #firebase-облако-обмен сообщениями
Вопрос:
Я сталкивался со многими подобными вопросами в StackOverflow и Github, но я не нашел ответа.
У меня есть профиль разработчика Apple, и я загрузил ключ авторизации APNs в Firebase.
Я включил фоновую выборку, удаленные уведомления и фоновую обработку, а также Push-уведомления в моем xCode.
Я добавил эти два фрагмента кода в AppDelegate.swift:
import Firebase
if FirebaseApp.app() == nil {
FirebaseApp.configure()
}
...
if #available(iOS 10.0, *) {
// 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 })
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
Я добавил эту строку в Info.plist:
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Я тоже пробовал (тоже не работает):
key>FirebaseAppDelegateProxyEnabled</key>
<string>0</string>
Я следовал инструкциям из https://pub.dev/packages/firebase_messaging и я получаю уведомления, когда мое приложение находится на переднем плане (выполняется onMessage). Однако я вообще не получаю уведомлений, когда он работает в фоновом режиме. Я перепробовал все, что смог найти, ничего не работает. На данный момент я действительно в отчаянии. Это не работает для симулятора или реального устройства. Может ли это вообще работать? Если да, пожалуйста, помогите мне получить его.
Комментарии:
1. У меня также была такая же проблема несколько месяцев назад, но эта статья помогла мне medium.com/@jun.chenying /…
2. Отлично, я получаю уведомление сейчас! Спасибо!!! Исправление заключалось в использовании key>FirebaseAppDelegateProxyEnabled</key> <string>NO</string>
Ответ №1:
Как и предполагал @ChyperX, эта статья была полезной https://medium.com/@jun.chenying/flutter-tutorial-part3-push-notification-with-firebase-cloud-messaging-fcm-2fbdd84d3a5e. Использование:
<key>FirebaseAppDelegateProxyEnabled</key>
<string>NO</string>
в Info.plist вместо моих предыдущих попыток получилось.