Mam problem z Flutter i IOS w odniesieniu do powiadomień push.
Moja konfiguracja i rzeczy, które działają:
1) Zainstalowałem firebase_messaging: ^5.1.6
pakiet bez błędów / wykonałem wszystkie instrukcje dla IOS
2) Poprosiłem użytkownika o zgodę na IOS i zaakceptowałem otrzymywanie powiadomień push
3) Jestem w stanie uzyskać token FCM na urządzenia z systemem iOS i Android
4) Utworzyłem klucz w sekcji dla programistów Apple i dodałem klucz do FCM
5) Podczas testowania zamknąłem aplikację / wysłałem ją do tła - nadal nie ma szczęścia
6) Dodałem plik informacji o usłudze google do Runnera za pomocą Xcode
7) Dodałem powiadomienia push i powiadomienia w tle w XCode Capabilities
8) Testuję na urządzeniu fizycznym iPhone 7 i fizycznym iPadzie
Użyłem curl, aby wysłać powiadomienie do urządzenia IOS
curl -X POST --header "Authorization: key=<myAuthKEY>" \
--Header "Content-Type: application/json" \
https://fcm.googleapis.com/fcm/send \
-d "{\"to\":\"<myDeviceKey>\",\"notification\":{\"body\":\"Hello\"},\"priority\":10}"
Otrzymuję odpowiedź powodzenia od bazy ogniowej
{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
Oto jak odzyskuję token:
firebaseMessaging.getToken().then((String token) {
_authModel.setNotificationToken(token);
});
Kiedy uruchamiam aplikację na iOS, nie otrzymuję żadnych błędów Firebase.
Mam do czynienia z tym od 2 dni, więc robi się to trochę denerwujące, wszystko wydaje się działać na Androidzie.
Wszelkie sugestie proszę.
Doktor Flutter:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.4, on Mac OS X 10.15 19A583, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.38.1)
[✓] Connected device (4 available)
• No issues found!
Mój plik AppDelegate.m
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
@import Firebase;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FIRApp configure];
[GeneratedPluginRegistrant registerWithRegistry:self];
// Override point for customization after application launch.
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end
źródło
Odpowiedzi:
To nie jest ładne, być może będziesz musiał podać o wiele więcej szczegółów, ale zgłoś ten problem na https://github.com/FirebaseExtended/flutterfire/issues . W przeciwnym razie szybkie wyszukiwanie problemów z powiadomieniami push w systemie iOS pokazuje różnorodne raporty. Oto kilka podobnych, może jeden jest związany z twoim?
5) I have closed the app / sent it to the background when testing - still no luck
Lub jeśli już go złożyłeś, udostępnij link! Inni mogą dodawać opinie.
źródło
Jeśli testujesz na pluszowym urządzeniu z systemem iOS 10, spróbuj dodać poniższe wiersze do pliku AppDelegate.swift poniżej FirebaseApp.configure ()
źródło
Musisz dokładnie wykonać wszystkie kroki z https://pub.dev/packages/firebase_messaging . Utknąłem w tym. Ale później zdałem sobie sprawę, że czegoś mi brakuje. Następnie ponownie sprawdzam wszystkie kroki. Nie udało mi się zarejestrować w APN (Apple Push Notification). Więc jeszcze raz sprawdź.
źródło