Как только я обновил флаттер до версии 1.12.13, я обнаружил эту проблему и не могу ее исправить. Я сделал так, как отправлено руководство по firebase_messaging, и получил следующую ошибку: «ошибка: несовместимые типы: PluginRegistry нельзя преобразовать в FlutterEngine GeneratedPluginRegistrant.registerWith (registry);« Мой код выглядит следующим образом:
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
Габриэль Г. Паван
источник
источник
Ответы:
Обновлено 31 декабря 2019 года.
Вам не следует использовать инструмент облачных сообщений Firebase для отправки уведомлений, так как он заставляет вас использовать заголовок и текст.
Вы должны отправить уведомление без заголовка и тела. иметь приложение в фоновом режиме, которое должно работать для вас.
Если это сработает для вас, я был бы признателен, если бы вы могли проголосовать за этот ответ, спасибо.
Я нашел временное решение. Я не уверен, что это лучшее исправление, но мои плагины работают должным образом, и я предполагаю, что проблема должна быть в реестре, предоставленном io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService в строке 164.
Мой файл AndroidManifest.xml:
Мое приложение.java
Мой FirebaseCloudMessagingPluginRegistrant.java
Отправить уведомление в дартс:
Я добавил ожидание продолжительностью 5 секунд, чтобы вы могли поместить приложение в фоновом режиме и убедиться, что сообщение в фоновом режиме работает
источник
Порт кода DomingoMG для Kotlin можно найти ниже. Проверено и работает в марте 2020 года.
pubspec.yaml
Application.kt
FirebaseCloudMessagingPluginRegistrant.kt
источник
Замените вашу строку кода ниже:
с этим:
источник
В дополнение к ответу DomingoMG, не забудьте удалить
из файла mainactivity в папке Android. Если нет, вы получите ошибку.
источник
Я добавил только класс воды как дополнительный из шагов в пакете Firebase Messaging, и это было решено:
источник