Estou tendo um problema com o Flutter e o IOS em relação às notificações por push.
Minha configuração e coisas que funcionam:
1) Eu instalei o firebase_messaging: ^5.1.6
pacote sem erros / segui todas as instruções para o IOS
2) Pedi permissão ao usuário no IOS e aceitei receber notificações por push
3) Consigo obter um token FCM em dispositivos IOS e Android
4) Criei uma chave na seção desenvolvedor da Apple e adicionei a chave ao FCM
5) Fechei o aplicativo / enviei-o para segundo plano durante o teste - ainda sem sorte
6) Adicionei o arquivo google-service-info ao Runner usando o Xcode
7) Adicionei notificações push e notificações em segundo plano no XCode Capabilities
8) Estou testando em um dispositivo físico iPhone 7 e em um iPad físico
Eu usei o curl para enviar uma notificação para um dispositivo 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}"
Recebo uma resposta bem-sucedida do firebase
{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
Aqui está como eu recupero o token:
firebaseMessaging.getToken().then((String token) {
_authModel.setNotificationToken(token);
});
Quando executo o aplicativo no IOS, não recebo erros do Firebase.
Estou brincando com isso há 2 dias, então está ficando um pouco chato, tudo acima parece funcionar no Android.
Alguma sugestão, por favor.
Médico 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!
Meu arquivo 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
fonte
Respostas:
Não é bonito, pode ser necessário fornecer muito mais detalhes, mas envie esse problema para https://github.com/FirebaseExtended/flutterfire/issues . Caso contrário, uma pesquisa rápida de problemas de notificação por push do iOS mostra uma variedade de relatórios. Aqui estão alguns semelhantes, talvez um esteja relacionado ao seu?
5) I have closed the app / sent it to the background when testing - still no luck
Ou se você já registrou um, compartilhe o link! Outros podem adicionar feedback ao seu.
fonte
Se você estiver testando no dispositivo iOS 10, tente adicionar linhas abaixo ao seu arquivo AppDelegate.swift abaixo de FirebaseApp.configure ()
fonte
Você deve concluir todas as etapas em https://pub.dev/packages/firebase_messaging com cuidado. Eu também estava preso nele. Mas depois percebi que estava faltando alguma coisa. Então, verifiquei novamente todas as etapas. Perdi o registro no APN (Apple Push Notification) .Por isso, verifique novamente.
fonte