void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await initNotification();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler;
...
}
Future initNotification() async {
var initializationSettingsAndroid =
new AndroidInitializationSettings("@drawable/kin_removebg");
var initializationSettingsIOS = new IOSInitializationSettings(
requestAlertPermission: false,
requestBadgePermission: false,
requestSoundPermission: false,
onDidReceiveLocalNotification:
(int? id, String? title, String? body, String? payload) async {});
var initializationSettings = new InitializationSettings(
android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
final NotificationAppLaunchDetails? notificationAppLaunchDetails =
await flutterLocalNotificationsPlugin.getNotificationAppLaunchDetails();
final didNotificationLaunchApp =
notificationAppLaunchDetails?.didNotificationLaunchApp ?? false;
if (didNotificationLaunchApp) {
var payload = notificationAppLaunchDetails!.payload;
onSelectNotification(payload);
} else {
await flutterLocalNotificationsPlugin.initialize(
initializationSettings,
onDidReceiveNotificationResponse:onSelectNotification,
onDidReceiveBackgroundNotificationResponse: onSelectNotification,
}
}
onSelectNotification(NotificationResponse notificationResponse) async {
var payloadData = jsonDecode(notificationResponse.payload);
print("payload $payload");
if(payloadData["type"]=="something" && payloadData["id"]!="something"){
Navigator.of(navigatorKey.currentContext!).push(
MaterialPageRoute(
builder: (context) =>
SomethingScreen(id: payloadData["id"],)));
}
}