Flutter Push-Benachrichtigung wird unter IOS nicht angezeigt


12

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.6Paket 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


Ich denke, es hängt mit FirebaseAppDelegateProxyEnabled zusammen. medium.com/flutterpub/… Dieser Link ist hilfreich.
Ares

Der Link scheint deaktiviert zu sein , das Archiv ist noch aktiv: web.archive.org/web/20191118225834/https://medium.com/… aber ohne Bilder :(
Stefano Saitta

Dieser scheint auch gut zu sein: medium.com/@jun.chenying/…
Stefano Saitta

1
Können Sie sie über die Firebase-Messaging-Konsole senden?
Stefano Saitta

@ user3057745 Lösen Sie dieses Problem?
Daniel Kuta

Antworten:


2

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?

Oder wenn Sie bereits einen eingereicht haben, teilen Sie den Link! Andere können Ihr Feedback hinzufügen.


0

Wenn Sie auf einem ios 10-Plüschgerät testen, fügen Sie Ihrer AppDelegate.swift-Datei unter FirebaseApp.configure () die folgenden Zeilen hinzu.

 if #available(iOS 10.0, *) {
  UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.