notification_handler.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_local_notifications/flutter_local_notifications.dart';
  4. class NotificationHandler{
  5. static final flutterLocalNotificationPlugin =
  6. FlutterLocalNotificationsPlugin();
  7. static late BuildContext myContext;
  8. static void initNotification({required BuildContext context,required SelectNotificationCallback selectNotificationCallback}){ //customize
  9. myContext = context;
  10. var initAndroid = const AndroidInitializationSettings("@drawable/ic_notify");
  11. const IOSInitializationSettings initializationSettingsIOS =
  12. IOSInitializationSettings(
  13. requestSoundPermission: false,
  14. requestBadgePermission: false,
  15. requestAlertPermission: false,
  16. onDidReceiveLocalNotification: onDidReceiveLocalNotification,
  17. );
  18. var initSetting = InitializationSettings(android: initAndroid,iOS: initializationSettingsIOS);
  19. flutterLocalNotificationPlugin.initialize(initSetting,onSelectNotification: selectNotificationCallback);
  20. }
  21. static Future onDidReceiveLocalNotification(int? id,String? title,String? body,String? payload) async{
  22. showDialog(context: myContext, builder: (context)=> CupertinoAlertDialog(title: Text(title!),
  23. content: Text(body!),
  24. actions: [
  25. CupertinoDialogAction(
  26. isDefaultAction: true,
  27. child: const Text('OK'),
  28. onPressed: ()=> Navigator.of(context,rootNavigator: true,).pop(),
  29. )
  30. ],));
  31. }
  32. }