Skip to content

Instantly share code, notes, and snippets.

@SteveOye
Last active January 26, 2023 16:15
Show Gist options
  • Save SteveOye/b66d6c52767d4b104122c2849b5c0cb2 to your computer and use it in GitHub Desktop.
Save SteveOye/b66d6c52767d4b104122c2849b5c0cb2 to your computer and use it in GitHub Desktop.
with scheduled notifier
//import timezone plugin
import 'package:timezone/data/latest_all.dart' as timezone;
import 'package:timezone/timezone.dart' as timezone;
class NotificationApi {
static final _notification = FlutterLocalNotificationsPlugin();
static void init() {
_notification.initialize(
const InitializationSettings(
android: AndroidInitializationSettings('@mipmap/ic_launcher'),
iOS: DarwinInitializationSettings(),
),
);
}
static scheduleNotification() async {
timezone.initializeTimeZones();
var androidPlatformChannelSpecifics = const AndroidNotificationDetails(
'channel id',
'channel name',
channelDescription: 'channel description',
importance: Importance.max, // set the importance of the notification
priority: Priority.high, // set prority
);
var iOSPlatformChannelSpecifics = const DarwinNotificationDetails();
var platformChannelSpecifics = NotificationDetails(
android: androidPlatformChannelSpecifics,
iOS: iOSPlatformChannelSpecifics,
);
await _notification.zonedSchedule(
"id",
"notification title",
'Message goes here',
timezone.TZDateTime.now(timezone.local).add(const Duration(seconds: 10)),
platformChannelSpecifics,
uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime,
androidAllowWhileIdle: true);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment