| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import 'package:flutter/cupertino.dart';
- import 'package:flutter_local_notifications/flutter_local_notifications.dart';
- class Notifications {
- static FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;
- static void init(BuildContext context) async {
- flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
- // initialise the plugin. app_icon needs to be a added as a drawable resource to the Android head project
- const AndroidInitializationSettings initializationSettingsAndroid =
- AndroidInitializationSettings('notify');
- final IOSInitializationSettings initializationSettingsIOS = IOSInitializationSettings(
- onDidReceiveLocalNotification: onDidReceiveLocalNotification);
- final MacOSInitializationSettings initializationSettingsMacOS =
- MacOSInitializationSettings();
- final InitializationSettings initializationSettings = InitializationSettings(
- android: initializationSettingsAndroid,
- iOS: initializationSettingsIOS,
- macOS: initializationSettingsMacOS);
- await flutterLocalNotificationsPlugin.initialize(
- initializationSettings, onSelectNotification: selectNotification);
- }
- static Future onDidReceiveLocalNotification (int id, String title,
- String body, String payload) async {
- final bool result = await flutterLocalNotificationsPlugin
- .resolvePlatformSpecificImplementation<
- IOSFlutterLocalNotificationsPlugin>()
- ?.requestPermissions(
- alert: true,
- badge: true,
- sound: true,
- );
- }
- static Future selectNotification(String payload) async {
- // if (payload != null) {
- // Events.fire(NotifyMessage(payload));
- // } else {
- // print("get notify");
- // }
- }
- static Future showNotify(String title, String body, { String payload }) async {
- const AndroidNotificationDetails androidPlatformChannelSpecifics =
- AndroidNotificationDetails(
- 'your channel id', 'your channel name', 'your channel description',
- importance: Importance.max,
- priority: Priority.high,
- showWhen: false);
- const NotificationDetails platformChannelSpecifics =
- NotificationDetails(android: androidPlatformChannelSpecifics);
- return await flutterLocalNotificationsPlugin.show(
- 0, title, body, platformChannelSpecifics,
- payload: payload);
- }
- }
|