当前位置: 首页 > 知识库问答 >
问题:

缺少插件异常(在通道dexterous.com/flutter/local_notifications上没有找到方法显示的实现)

常永怡
2023-03-14

我曾尝试用Flutter实现Firebase云消息传递,直到我使用“本地通知”插件来显示通知,我才获得成功

我的通知在前台工作正常,但在后台显示此错误:

[错误:flatter/lib/ui/ui_dart_state.cc(157)]未处理的异常:缺少PluginException(在channel dexterous.com/flatter/local_通知上未找到方法显示的实现)

我使用Firebase Cloud Messaging 6.0。9,本地通知1.2。0.4和最新颤振

这是我的代码: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);
  }

}

显示通知方法

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',
      );

  }

共有3个答案

齐运诚
2023-03-14

我在使用result时也遇到了同样的问题。在混合应用程序的本机部分中未实现。当我将此方法替换为result时,所有问题都解决了。成功(0)

贺季同
2023-03-14

静态编程语言pplication.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"));
        }
    }
}
曾飞沉
2023-03-14

我已经找到了解决方案,这就是为什么在平台端我们不注册外部插件

添加FCMPluginRegistrant。爪哇式

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;
    }
}

并在应用程序中调用它。JAVA

  @Override
    public void registerWith(PluginRegistry registry) {



        FirebaseCloudMessagingPluginRegistrant.registerWith(registry);

    }
 类似资料:
  • 使用Flatter的google登录 但是当我使用此语句登录用户时看到以下消息 E/flutter(6491): MisSingPluginExcture(在通道plugins.flutter.io/google_sign_in上没有找到方法初始化的实现) 我验证了以下步骤: 用户是否经常报告此错误。不确定如何继续。我在做大多数医生说的事情,但它不起作用。 我看到的另一个奇怪的行为是,我第一次运行

  • 我最近在我的颤动应用程序中安装了谷歌地图,但我一直得到这个错误, 缺少插图异常 (缺少插图例外(未找到方法相机的实现#在通道 plugins.flutter.io/google_maps_53)上动画) 这发生在我调用的每个地图控制器上,即使是oncreate方法也给我带来了同样的问题,我第一次尝试了颤振清理和颤振酒吧获取,但没有用,现在我不知道了。 这是我创建地图的主dart文件 这是我单独的应

  • 我已经尝试实现google_sign_in library快两天了。我已经从本地主机和firebase控制台完成了所有必要的配置。 依赖关系: 下面是自定义函数。 问题是,每当我用<code>按钮</code>点击触发<code>_googleSignUp()</code>功能时,我总是在下面看到这个日志,然后什么都没有发生。 开发者们,我们如何解决这个问题?非常感谢。

  • 对于和的未处理插件异常,我收到一个错误: 未处理的异常:MissingPluginException(在channel plugins.flatter.io/shared_首选项上找不到方法getAll的实现)未处理的异常:MissingPluginException(在channel plugins.flatter.io/path_provider上找不到方法getApplicationSupp

  • 我是groovy的新手。我有这样的代码。 串味 从这个客户端映射中,我需要迭代appName和enable的值。为此,我使用了get方法。。。我对此不确定。 使用此get方法时,我遇到以下错误。因为我是groovy新手,所以我不知道这里发生了什么 棒极了。lang.MissingMethodException:没有方法com的签名。康卡斯特。csv。哈克索。SecureFirebaseRestCl

  • 我是Groovy新手,但我正在尝试编写一个简单的递归方法来将层次路径解析为对象图。以下是我尝试过的: 但我得到以下错误: 我错过了什么?