Powiadomienie Flutter Push nie wyświetla się na IOS


12

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


Myślę, że jest to związane z FirebaseAppDelegateProxyEnabled. medium.com/flutterpub/… Ten link będzie pomocny.
Ares,

Link wygląda na wyłączony, archiwum pierwsze jest nadal aktywne: web.archive.org/web/20191118225834/https : //medium.com/... ale bez zdjęć :(
Stefano Saitta

Ten też wydaje się dobry: medium.com/@jun.chenying/…
Stefano Saitta

1
Czy możesz wysłać je za pomocą konsoli przesyłania komunikatów Firebase?
Stefano Saitta

@ user3057745 Czy rozwiązujesz ten problem?
Daniel Kuta

Odpowiedzi:


2

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?

Lub jeśli już go złożyłeś, udostępnij link! Inni mogą dodawać opinie.


0

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 ()

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

0

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ź.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.