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'); },
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter