setupLocalNotification method
Initializes local notification support for received messages.
Implementation
Future<void> setupLocalNotification({bool enable = true}) async {
_enableLocalNotification = enable;
if (!enable) {
_localNotificationReady = false;
notifyListeners();
return;
}
final plugin = _localNotifications ??= FlutterLocalNotificationsPlugin();
const initializationSettings = InitializationSettings(
android: AndroidInitializationSettings('@mipmap/ic_launcher'),
iOS: DarwinInitializationSettings(
requestAlertPermission: true,
requestBadgePermission: true,
requestSoundPermission: true,
),
macOS: DarwinInitializationSettings(
requestAlertPermission: true,
requestBadgePermission: true,
requestSoundPermission: true,
),
);
try {
await plugin.initialize(initializationSettings);
await plugin
.resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin
>()
?.requestNotificationsPermission();
await plugin
.resolvePlatformSpecificImplementation<
IOSFlutterLocalNotificationsPlugin
>()
?.requestPermissions(alert: true, badge: true, sound: true);
await plugin
.resolvePlatformSpecificImplementation<
MacOSFlutterLocalNotificationsPlugin
>()
?.requestPermissions(alert: true, badge: true, sound: true);
_localNotificationReady = true;
} catch (_) {
_localNotificationReady = false;
}
notifyListeners();
}