notifi

 avatar
unknown
dart
2 years ago
1.9 kB
4
Indexable
class NotificationApi {
  static final _notification = FlutterLocalNotificationsPlugin();
  static final onNotifications = BehaviorSubject<String?>();

  static Future notificationDetails() async {
    return NotificationDetails(
        android: AndroidNotificationDetails('channel id', 'channel name',
            importance: Importance.high, icon: '@mipmap/ic_launcher'),
        iOS: IOSNotificationDetails(
            presentAlert: true, presentBadge: true, presentSound: true));
  }

  static Future init() async {
    final android = AndroidInitializationSettings('@mipmap/ic_launcher');
    final iOS = IOSInitializationSettings(
        requestSoundPermission: false,

        // onDidReceiveLocalNotification: onDidReceiveLocalNotification,
        requestBadgePermission: false,
        requestAlertPermission: false);

    final settings = InitializationSettings(android: android, iOS: iOS);

    await _notification.initialize(settings,
        onSelectNotification: (payload) async {
      onNotifications.add(payload);
    });
  }

  enableIOSNotifications() async {
    await FirebaseMessaging.instance
        .setForegroundNotificationPresentationOptions(
      alert: true, // Required to display a heads up notification
      badge: true,
      sound: true,
    );
  }

  void localNotification({BuildContext? context}) async {
    FirebaseMessaging.onMessage.listen((RemoteMessage message) {
      _notification.show(
        12345,
        message.notification!.title,
        message.notification!.body,
        NotificationDetails(
          android: AndroidNotificationDetails(
            'channel id',
            'channel name',
            importance: Importance.high,
            playSound: true,
            icon: '@mipmap/ic_launcher',
          ),
          iOS: IOSNotificationDetails(),
        ),
        payload: 'data',
      );
    });
  }
}

void onDidReceiveLocalNotification() {
  print("object");
}
Editor is loading...