Ich habe ein Problem mit Flutter und IOS in Bezug auf Push-Benachrichtigungen.
Mein Setup und Dinge, die funktionieren:
1) Ich habe das firebase_messaging: ^5.1.6
Paket ohne Fehler installiert / alle Anweisungen für IOS befolgt
2) Ich habe den Benutzer um Erlaubnis unter IOS gebeten und akzeptiert, Push-Benachrichtigungen zu erhalten
3) Ich kann ein FCM-Token auf IOS- und Android-Geräten erhalten
4) Ich habe im Apple-Entwicklerbereich einen Schlüssel erstellt und den Schlüssel zu FCM hinzugefügt
5) Ich habe die App geschlossen / beim Testen in den Hintergrund geschickt - immer noch kein Glück
6) Ich habe die Google-Service-Info-Datei mit Xcode zu Runner hinzugefügt
7) Ich habe Push-Benachrichtigungen und Hintergrundbenachrichtigungen in XCode-Funktionen hinzugefügt
8) Ich teste auf einem physischen iPhone 7-Gerät und einem physischen iPad
Ich habe Curl verwendet, um eine Benachrichtigung an ein iOS-Gerät zu senden
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}"
Ich bekomme eine Erfolgsantwort von Firebase
{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
So rufe ich den Token ab:
firebaseMessaging.getToken().then((String token) {
_authModel.setNotificationToken(token);
});
Wenn ich die App unter IOS ausführe, werden keine Firebase-Fehler angezeigt.
Ich habe jetzt seit 2 Tagen damit rumgespielt, also wird es ein bisschen nervig, all das scheint auf Android zu funktionieren.
Anregungen bitte.
Flatter Doktor:
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!
Meine AppDelegate.m-Datei
#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
quelle
Antworten:
Es ist nicht schön, Sie müssen möglicherweise viel mehr Details angeben, aber bitte reichen Sie dieses Problem unter https://github.com/FirebaseExtended/flutterfire/issues ein . Andernfalls zeigt eine schnelle Suche nach Problemen mit der iOS-Push-Benachrichtigung eine Vielzahl von Berichten. Hier sind einige ähnliche, vielleicht ist eine mit Ihrer verwandt?
5) I have closed the app / sent it to the background when testing - still no luck
Oder wenn Sie bereits einen eingereicht haben, teilen Sie den Link! Andere können Ihr Feedback hinzufügen.
quelle
Wenn Sie auf einem ios 10-Plüschgerät testen, fügen Sie Ihrer AppDelegate.swift-Datei unter FirebaseApp.configure () die folgenden Zeilen hinzu.
quelle
Sie müssen alle Schritte von https://pub.dev/packages/firebase_messaging sorgfältig ausführen . Ich steckte auch darin fest. Aber später wurde mir klar, dass mir etwas fehlt. Dann überprüfe ich alle Schritte erneut. Ich habe die Registrierung bei APN (Apple Push Notification) verpasst. Bitte überprüfen Sie dies noch einmal.
quelle