MissingPluginException (Реализация для показа метода на канале dexterous.com/flutter/local_notifications не найдена)

Я пробовал реализовать Firebase Cloud Messaging 9X_flutter-layout с Flutter, и мне это удавалось, пока я не 9X_dart использовал плагин Local Notification для 9X_firebase отображения уведомлений

Мое уведомление работает 9X_flutter-packages нормально на переднем плане, но на заднем 9X_localnotification плане отображается следующая ошибка:

[ОШИБКА: flutter 9X_localnotification / lib / ui / ui_dart_state.cc (157)] Необработанное 9X_dart исключение: MissingPluginException (Реализация 9X_dart для метода, отображаемого на канал dexterous.com/flutter/local_notifications)

Я 9X_flutter использую Firebase Cloud Messaging 6.0.9, Local 9X_firebase-android Notification 1.2.0 + 4 и последнюю версию 9X_firebase Flutter

Вот мой код: NotificationHandler

import 'package:flutter_local_notifications/flutter_local_notifications.dart'; class NotificationHandler{ static final flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); // make it a static field of the class static void initNotification() { // initialise the plugin. app_icon needs to be a added as a drawable resource to the Android head project var initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher'); var initializationSettingsIOS = IOSInitializationSettings( onDidReceiveLocalNotification: onDidReceiveLocalNotification); var initializationSettings = InitializationSettings( initializationSettingsAndroid, initializationSettingsIOS); flutterLocalNotificationsPlugin.initialize(initializationSettings, onSelectNotification: onSelectNotification); } static Future onSelectNotification(String payload) async { if (payload != null) { print('notification payload: ' + payload); } } static Future onDidReceiveLocalNotification(int id, String title, String body, String payload) { print(title+" "+body); } } 

Метод ShowNotification

static void showNotification(data, data2) async { var androidPlatformChannelSpecifics = new AndroidNotificationDetails( 'dexterous.com.flutter.local_notifications', 'your channel name', 'your channel description', importance: Importance.Max, priority: Priority.High); var iOSPlatformChannelSpecifics = new IOSNotificationDetails(); var platformChannelSpecifics = new NotificationDetails( androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); await NotificationHandler.flutterLocalNotificationsPlugin .show( 0, data, data2, platformChannelSpecifics, payload: 'Custom_Sound', ); } 

8
0
2
Общее количество ответов: 2

Ответ #1

Ответ на вопрос: MissingPluginException (Реализация для показа метода на канале dexterous.com/flutter/local_notifications не найдена)

Я нашел решение, поэтому на стороне платформы 9X_flutter-sdk мы не регистрируемся для внешнего плагина

Добавьте 9X_firebase в свой FCMPluginRegistrant.java как

public final class FirebaseCloudMessagingPluginRegistrant { public static void registerWith(PluginRegistry registry) { if (alreadyRegisteredWith(registry)) { return; } FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin")); FlutterLocalNotificationsPlugin.registerWith(registry.registrarFor("com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin")); } private static boolean alreadyRegisteredWith(PluginRegistry registry) { final String key = FirebaseCloudMessagingPluginRegistrant.class.getCanonicalName(); if (registry.hasPlugin(key)) { return true; } registry.registrarFor(key); return false; } } 

И назовите 9X_flutter-sdk его в Application.java

 @Override public void registerWith(PluginRegistry registry) { FirebaseCloudMessagingPluginRegistrant.registerWith(registry); } 

17
0

Ответ #2

Ответ на вопрос: MissingPluginException (Реализация для показа метода на канале dexterous.com/flutter/local_notifications не найдена)

Для Котлина: Application.kt

package your.package.name import io.flutter.app.FlutterApplication import io.flutter.plugin.common.PluginRegistry import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin import io.flutter.view.FlutterMain import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService import com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin class Application : FlutterApplication(), PluginRegistrantCallback { override fun onCreate() { super.onCreate() FlutterFirebaseMessagingService.setPluginRegistrant(this); FlutterMain.startInitialization(this) } override fun registerWith(registry: PluginRegistry?) { if (!registry!!.hasPlugin("io.flutter.plugins.firebasemessaging")) { FirebaseMessagingPlugin.registerWith(registry!!.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin")); } if (!registry!!.hasPlugin("com.dexterous.flutterlocalnotifications")) { FlutterLocalNotificationsPlugin.registerWith(registry!!.registrarFor("com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin")); } } } 

9X_firebase

6
0