Локальное уведомление флаттера не отображается на нативном - PullRequest
0 голосов
/ 27 апреля 2020

У меня проблемы с локальными уведомлениями по флаттеру. Я использую flutter_local_notifications для отображения локальных уведомлений.

У меня есть приложение флаттера, которое было добавлено в собственное приложение Android. Уведомления могут появляться при запуске приложения флаттера, но не отображаются при запуске приложения флаттера с собственным Android.

. Это локальный класс уведомлений, который я использую.

class _NotificationKeys {
  static const channelId = "notification.channel.id";
  static const channelName = "notification.channel.name";
  static const channelDescription = "notification.channel.desc";
}

class LocalNotification {
  LocalNotification._privateConstructor() {
    var initializationSettingsAndroid =
        new AndroidInitializationSettings('@mipmap/ic_launcher');
    var initializationSettingsIOS = new IOSInitializationSettings();
    var initializationSettings = new InitializationSettings(
        initializationSettingsAndroid, initializationSettingsIOS);
    _flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
    _flutterLocalNotificationsPlugin.initialize(initializationSettings,
        onSelectNotification: _onSelectNotification);
  }

  static final LocalNotification instance =
      LocalNotification._privateConstructor();

  FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin;

  List<Function(String payload)> _listeners = [];

  void addListener(Function(String payload) function) {
    _listeners.add(function);
  }

  Future _onSelectNotification(String payload) async {
    _listeners.forEach((function) {
      function(payload);
    });
  }

  Future showNotificationWithDefaultSound(
      int id, String title, String body, String payload) async {
    var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
        _NotificationKeys.channelId,
        _NotificationKeys.channelName,
        _NotificationKeys.channelDescription,
        importance: Importance.Max,
        priority: Priority.High);
    var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
    var platformChannelSpecifics = new NotificationDetails(
        androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
    await _flutterLocalNotificationsPlugin.show(
      id,
      title,
      body,
      platformChannelSpecifics,
      payload: payload,
    );
  }
}

Это ошибка, которую я получил после вызова _flutterLocalNotificationsPlugin.show.

Attempt to invoke virtual method 'java.lang.String java.lang.Class.getName()' on a null object reference

Это трассировка стека.

StandardMethodCodec.decodeEnvelope (message_codecs.dart:569)
MethodChannel._invokeMethod (platform_channel.dart:156)
<asynchronous gap>
MethodChannel.invokeMethod (platform_channel.dart:329)
AndroidFlutterLocalNotificationsPlugin.show (platform_flutter_local_notifications.dart:137)
FlutterLocalNotificationsPlugin.show (flutter_local_notifications_plugin.dart:136)
LocalNotification.showNotificationWithDefaultSound (local_notification.dart:49)

Я искал эту проблему в репозитории flutter_local_notifications, но не найдено никаких результатов. Если вы найдете решение этой проблемы, пожалуйста, просветите меня. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...