Flutter Push-повідомлення не відображається на IOS


12

У мене виникають проблеми з Flutter та IOS щодо Push-сповіщень.

Моє налаштування та речі, які працюють:

1) Я встановив firebase_messaging: ^5.1.6пакет без помилок / дотримувався всіх їх інструкцій щодо IOS

2) Я попросив дозволу користувача на IOS і прийняв отримувати push-повідомлення

3) Я можу отримати маркер FCM на пристроях IOS та Android

4) Я створив ключ у розділі розробника Apple і додав ключ до FCM

5) Я закрив додаток / надіслав його на другий план при тестуванні - все одно не пощастило

6) Я додав файл google-service-info до Runner за допомогою Xcode

7) Я додав push-сповіщення та фонові сповіщення у можливості XCode

8) Я тестую на фізичному пристрої iPhone 7 та фізичному iPad

Я використовував curl для надсилання сповіщення на пристрій 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}"

Я отримую відповідь про успіх від Firebase

{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}

Ось як я отримую маркер:

firebaseMessaging.getToken().then((String token) {
      _authModel.setNotificationToken(token);
    });

Коли я запускаю додаток на IOS, я не отримую жодних помилок Firebase.

Я возився з цим вже 2 дні, тому стає трохи дратувати, все вищезазначене, здається, працює на Android.

Будь-які пропозиції, будь ласка.

Доктор трепетів:

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!

Мій файл 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

Я думаю, що це пов'язано з FirebaseAppDelegateProxyEnabled. medium.com/flutterpub/… Це посилання буде корисним.
Арес

Посилання, здається, архівне все ще активне: web.archive.org/web/20191118225834/https://medium.com/… але без зображень :(
Stefano Saitta

Цей також здається гарним: medium.com/@jun.chenying/…
Стефано

1
Чи можете ви надіслати їх за допомогою консолі обміну повідомленнями Firebase?
Стефано Саїтта

@ user3057745 Вирішите цю проблему?
Даніель Кута

Відповіді:


2

Це не дуже, можливо, вам потрібно надати набагато більше деталей, але будь ласка, подайте цю проблему на https://github.com/FirebaseExtended/flutterfire/isissue . В іншому випадку швидкий пошук проблем із натисканням на iOS повідомляє про різноманітні звіти. Ось кілька подібних, можливо, одна пов’язана з вами?

Або якщо ви вже подали його, поділіться посиланням! Інші можуть додати відгук до вашого.


0

Якщо ви тестуєте на плюшевому пристрої ios 10, то спробуйте додати нижче рядки до свого файлу AppDelegate.swift нижче FirebaseApp.configure ()

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

0

Ви повинні виконати всі кроки з https://pub.dev/packages/firebase_messaging обережно. Я також застряг у ньому. Але згодом я зрозумів, що мені щось не вистачає. Потім я повторно перевіряю всі кроки. Я пропустив реєстрацію в APN (Apple Push Notification). Тому будь ласка, перевірте ще раз.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.