Jak tylko zaktualizowałem trzepotanie do wersji 1.12.13, znalazłem ten problem i nie mogę go naprawić. Zrobiłem tak, jak samouczek firebase_messaging i otrzymałem następujący błąd: „błąd: niezgodne typy: PluginRegistry nie można przekonwertować na FlutterEngine GeneratedPluginRegistrant.registerWith (register);” Mój kod jest następujący:
package io.flutter.plugins;
import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Build;
public class Application extends FlutterApplication implements PluginRegistrantCallback {
@Override
public void onCreate() {
super.onCreate();
FlutterFirebaseMessagingService.setPluginRegistrant(this);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
NotificationChannel channel = new NotificationChannel("messages","Messages", NotificationManager.IMPORTANCE_LOW);
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(channel);
}
}
@Override
public void registerWith(PluginRegistry registry) {
GeneratedPluginRegistrant.registerWith(registry);
}
}
firebase
flutter
firebase-cloud-messaging
flutter-dependencies
Gabriel G. Pavan
źródło
źródło
Odpowiedzi:
Zaktualizowano 31 grudnia 2019 r.
Nie należy używać narzędzia do przesyłania wiadomości w chmurze Firebase do wysyłania powiadomień, ponieważ zmusza do korzystania z tytułu i treści.
Musisz wysłać powiadomienie bez tytułu i treści. mieć w tle aplikację, która powinna Ci pomóc.
Jeśli to zadziała, byłbym wdzięczny, gdybyś mógł oddać mi głos na tę odpowiedź, dziękuję.
Znalazłem tymczasowe rozwiązanie. Nie jestem pewien, czy to najlepsza poprawka, ale moje wtyczki działają zgodnie z oczekiwaniami i zakładam, że problem dotyczy rejestru dostarczonego przez io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService w linii 164.
Mój plik AndroidManifest.xml:
Moja aplikacja.java
My FirebaseCloudMessagingPluginRegistrant.java
Wyślij powiadomienie w rzutce:
Dodałem oczekiwanie na 5 sekund, abyś mógł umieścić aplikację w tle i sprawdzić, czy komunikat w tle jest uruchomiony
źródło
Port kodu DomingoMG do Kotlin można znaleźć poniżej. Testowane i działające w marcu 2020 r.
pubspec.yaml
Application.kt
FirebaseCloudMessagingPluginRegistrant.kt
źródło
Zamień poniższy wiersz kodu:
z tym:
źródło
Oprócz odpowiedzi DomingoMG nie zapomnij usunąć
z pliku mainactivity w folderze android. Jeśli nie, pojawi się błąd.
źródło
Dodałem tylko klasę wody jako dodatkową część kroków w pakiecie Firebase Messaging i zostało to rozwiązane:
źródło