Flutter: MissingPluginException (реализация метода на канале не найдена) вызывает собственные методы (MainActivity) в фо ⇐ Android
Flutter: MissingPluginException (реализация метода на канале не найдена) вызывает собственные методы (MainActivity) в фо
Я хочу вызвать собственный метод, который я создал в MainActivity. Пока приложение находится на переднем плане, все работает нормально, но когда приложение находится в фоновом режиме, оно даже не переходит в MainActivity. Так он и там не регистрируется. Я вызываю метод следующим образом: MethodChannel('de.my').invokeMethod("getCurrentNotificationGroups"); ..и здесь также появляется сообщение об ошибке Я получаю следующее сообщение об ошибке: Уведомление FlutterFire: в вашем обработчике фоновых сообщений произошла ошибка: **MissingPluginException (реализация метода **getCurrentNotificationGroups на канале de.my не найдена) Есть ли у кого-нибудь из вас опыт вызова собственных методов (MainActivity) в фоновом режиме?
Я заметил в Интернете: проблема в том, что если ваше приложение начинает выполнять код, пока оно остановлено, как это происходит с onBackgroundMessageHandler Firebase, то MainActivity не вызывается, и поэтому ваш MethodChannel не существует.
Я думаю, что это проблема, но я не знаю, как ее решить. Есть ли у кого-нибудь из вас идеи?
Это мой фоновый обработчик, который запускается
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
@pragma('vm:entry-point') Future firebaseMessagingBackgroundHandler (сообщение RemoteMessage) async { ВиджетыFlutterBinding.ensureInitialized(); дождитесь AppNotification.convertFirebaseToLocalNotification(сообщение); } Это в моем MainActivity.java
@Override public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { GeneratedPluginRegistrant.registerWith(flutterEngine); новый MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), "de.my") .setMethodCallHandler((methodCall, результат) -> { Log.d("MethodChannel", "Поступил вызов метода: " + методCall.method); переключатель (methodCall.method) { случай "clearNotifications": { ОчиститьУведомления(); результат.успех(истина); перерыв; } случай "getCurrentNotificationGroups": { List NotificationGroups = getCurrentNotificationGroups(); result.success(notificationGroups); перерыв; } по умолчанию: { результат.notImplemented(); перерыв; } } }); } Я удалил и переустановил, очистил флаттер, но ничего не помогло Моя цель состоит в том, чтобы этот метод также вызывался в фоновом режиме на Android, потому что на переднем плане все работает нормально. Я перерыл Интернет и перепробовал все возможное, но ничего не помогло.
Я хочу вызвать собственный метод, который я создал в MainActivity. Пока приложение находится на переднем плане, все работает нормально, но когда приложение находится в фоновом режиме, оно даже не переходит в MainActivity. Так он и там не регистрируется. Я вызываю метод следующим образом: MethodChannel('de.my').invokeMethod("getCurrentNotificationGroups"); ..и здесь также появляется сообщение об ошибке Я получаю следующее сообщение об ошибке: Уведомление FlutterFire: в вашем обработчике фоновых сообщений произошла ошибка: **MissingPluginException (реализация метода **getCurrentNotificationGroups на канале de.my не найдена) Есть ли у кого-нибудь из вас опыт вызова собственных методов (MainActivity) в фоновом режиме?
Я заметил в Интернете: проблема в том, что если ваше приложение начинает выполнять код, пока оно остановлено, как это происходит с onBackgroundMessageHandler Firebase, то MainActivity не вызывается, и поэтому ваш MethodChannel не существует.
Я думаю, что это проблема, но я не знаю, как ее решить. Есть ли у кого-нибудь из вас идеи?
Это мой фоновый обработчик, который запускается
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
@pragma('vm:entry-point') Future firebaseMessagingBackgroundHandler (сообщение RemoteMessage) async { ВиджетыFlutterBinding.ensureInitialized(); дождитесь AppNotification.convertFirebaseToLocalNotification(сообщение); } Это в моем MainActivity.java
@Override public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { GeneratedPluginRegistrant.registerWith(flutterEngine); новый MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), "de.my") .setMethodCallHandler((methodCall, результат) -> { Log.d("MethodChannel", "Поступил вызов метода: " + методCall.method); переключатель (methodCall.method) { случай "clearNotifications": { ОчиститьУведомления(); результат.успех(истина); перерыв; } случай "getCurrentNotificationGroups": { List NotificationGroups = getCurrentNotificationGroups(); result.success(notificationGroups); перерыв; } по умолчанию: { результат.notImplemented(); перерыв; } } }); } Я удалил и переустановил, очистил флаттер, но ничего не помогло Моя цель состоит в том, чтобы этот метод также вызывался в фоновом режиме на Android, потому что на переднем плане все работает нормально. Я перерыл Интернет и перепробовал все возможное, но ничего не помогло.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Реализация метода getAll на канале plugins.flutter.io/shared_preferences не найдена.
Anonymous » » в форуме IOS - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-