Lokalne notifikacije za Flutter na klik i na raspored -> konfiguracija i podesavanje

PHOTO EMBED

Mon May 16 2022 10:47:16 GMT+0000 (Coordinated Universal Time)

Saved by @Vesko_devv #dar

import 'package:flutter_local_notifications/flutter_local_notifications.dart';

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

void sendNotification({String? title, String? body}) async {
  FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
      FlutterLocalNotificationsPlugin();

  tz.initializeTimeZones();
  const AndroidInitializationSettings initializationSettingsAndroid =
    AndroidInitializationSettings('@mipmap/ic_launcher');

  const IOSInitializationSettings initializationSettingsIOS =
      IOSInitializationSettings(
    requestBadgePermission: true,
    requestAlertPermission: true,
    requestSoundPermission: true,
  );
  const InitializationSettings initializationSettings =
      InitializationSettings(iOS: initializationSettingsIOS,
                            android: initializationSettingsAndroid);
  await flutterLocalNotificationsPlugin.initialize(initializationSettings);

  const AndroidNotificationChannel channel = AndroidNotificationChannel(
      'high_channel', 'High Importance Notification',
      description: "This channel is for important notification",
      importance: Importance.max);

  // flutterLocalNotificationsPlugin.show(
  //   0,
  //   title,
  //   body,
  //   NotificationDetails(
  //     android: AndroidNotificationDetails(channel.id, channel.name,
  //         channelDescription: channel.description),
  //   ),
  // );

  await flutterLocalNotificationsPlugin.zonedSchedule(
      0,
      title,
      body,
      tz.TZDateTime.now(tz.local).add(const Duration(seconds: 10)), // Za scheduled notifikacije u polju secconds proslijedjuemo za koliko ce da se pojavi ta lokalna notifikacija 
      const NotificationDetails(
          android: AndroidNotificationDetails(
              'your channel id', 'channel.description',
              channelDescription: 'your channel description')),
      androidAllowWhileIdle: true,
      uiLocalNotificationDateInterpretation:
          UILocalNotificationDateInterpretation.absoluteTime);

  // const AndroidNotificationDetails androidPlatformChannelSpecifics =
  //     AndroidNotificationDetails(
  //         'repeating channel id', 'repeating channel name',
  //         channelDescription: 'repeating description');
  // const NotificationDetails platformChannelSpecifics =
  //     NotificationDetails(android: androidPlatformChannelSpecifics);
  // await flutterLocalNotificationsPlugin.periodicallyShow(0, 'repeating title',
  //     'repeating body', RepeatInterval.everyMinute, platformChannelSpecifics,
  //     androidAllowWhileIdle: true);
}


// U view-u pozovemo funkciju i proslijedimo joj parametre u ovom slucaju je samo title i body 

 onPressed: () {
              
  sendNotification(
  title: 'Idemo bre',
  body: 'Sad ili nikad');
  },
content_copyCOPY

Napravljeno je kao posebna stranica u kojoj smo samo ubacili konfiguraciju lokalnih notifikacija, u ovom slucaju. I samo iz view stranice pozvali putem funkcije sendNotifications