无法从我的 flutter 应用程序发送本地通知

Unable to send local notifications from my flutter app

我在我的应用程序中使用 flutter_local_notifications 依赖项在按下按钮后发送本地通知。在应用程序中,在执行按钮时,本地通知应该出现并且应用程序应该导航到第二个屏幕。但是,只有第二个操作正在执行并且没有显示通知。我参考了 from this YouTube tutorial 在我的应用程序中创建本地通知。

我的应用程序的 notificationservice.dart 文件是:

import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:timezone/timezone.dart' as tz;
import 'package:timezone/data/latest.dart' as tz;

class NotificationService {
  static final NotificationService _notificationService = NotificationService._internal();

  factory NotificationService() {
    return _notificationService;
  }

  final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =

 

    FlutterLocalNotificationsPlugin();
    
      NotificationService._internal();
    
      Future<void> initNotification() async {
        final AndroidInitializationSettings initializationSettingsAndroid =
        AndroidInitializationSettings('@drawable/ic_launcher');

    final IOSInitializationSettings initializationSettingsIOS =
    IOSInitializationSettings(
      requestAlertPermission: false,
      requestBadgePermission: false,
      requestSoundPermission: false,
    );

    final InitializationSettings initializationSettings =
    InitializationSettings(
      android: initializationSettingsAndroid,
      iOS: initializationSettingsIOS
    );

    await flutterLocalNotificationsPlugin.initialize(initializationSettings);
  }

  Future<void> showNotification(int id, String title, String body, int seconds) async {
    await flutterLocalNotificationsPlugin.zonedSchedule(
      id,
      title,
      body,
      tz.TZDateTime.now(tz.local).add(Duration(seconds: seconds)),
      const NotificationDetails(
        android: AndroidNotificationDetails(
          'main_channel',
          'Main Channel',
          channelDescription: 'Main channel notifications',
          importance: Importance.max,
          priority: Priority.max,
          icon: '@drawable/ic_launcher'
        ),
        iOS: IOSNotificationDetails(
          sound: 'default.wav',
          presentAlert: true,
          presentBadge: true,
          presentSound: true,
        ),
      ),
      uiLocalNotificationDateInterpretation: UILocalNotificationDateInterpretation.absoluteTime,
      androidAllowWhileIdle: true,
    );
  }
}

TextButtonwidget中本地通知功能的实现如下:

TextButton(
            onPressed: () {
                //lines of codes
                NotificationService().showNotification(1, "title", "body", 5);

                Navigator.of(context).pushNamed(CaseConfirmationScreen.routeName);
            },
            child: Text(
              "File Case",
              style: GoogleFonts.poppins(
                color: Colors.white,
                fontSize: 26.0,
                fontWeight: FontWeight.w500,
                letterSpacing: 2.0,
              ),
            ),
            style: TextButton.styleFrom(
              backgroundColor: Colors.red,
              shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.circular(6.0),
              ),
              padding: const EdgeInsets.symmetric(
                horizontal: 22.0,
                vertical: 15.0,
              ),
            ),
          ),

The error shown in the debug console is this.

The sourcecode of the app in the Youtube Tutorial

我应该怎么做才能清除这个错误?

将您的图标添加到 [projectFolder]/android/app/src/main/res/drawable(例如 app_icon.png)并在此处使用该名称:

var initializationSettingsAndroid =
new AndroidInitializationSettings('@mipmap/ic_launcher');