为了在应用程序终止时导航到特定屏幕,我使用了 getInitialMessage 方法并调用了名为 _handleMessage 的函数。 但导航没有发生。 当应用程序终止时,我应该使用 onSelectNotification 方法进行导航吗?
为了在应用程序终止时导航到特定屏幕,我使用了 getInitialMessage 方法并调用了名为 _handleMessage 的函数。 但导航没有发生。 当应用程序终止时,我应该使用 onSelectNotification 方法进行导航吗? void configLocalNotification() 异步 {
getIt.registerSingleton<SharedPreferences>(
await SharedPreferences.getInstance());
FirebaseMessaging.instance
.getInitialMessage()
.then((RemoteMessage? message) async {
// SharedPreferences shared = await SharedPreferences.getInstance();
// String? token = await getIt<SharedPreferences>().getString("token");
if (message != null) {
_handleMessage(message);
}
});
FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) async {
_handleMessage(message);
});
AndroidInitializationSettings initializationSettingsAndroid =
AndroidInitializationSettings('@mipmap/ic_launcher');
DarwinInitializationSettings initializationSettingsIOS =
DarwinInitializationSettings();
InitializationSettings initializationSettings = InitializationSettings(
android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
flutterLocalNotificationsPlugin.initialize(
initializationSettings,
);
}
// static Future<void> initialize(FlutterLocalNotificationsPlugin flutterlocalplugin)async{
// flutterlocalplugin.initialize(initializationSettings,on)
// }
//show notification
void _handleMessage(RemoteMessage message) {
if (message.data != null || message.data["entityid"] != null) {
bool checkid = true;
getIt<SharedPreferences>().setBool('checkId', checkid);
String entityid = message.data['entityid'];
getIt<SharedPreferences>().setString('entityid', entityid);
if (message.data['module'] == 'Invoices' &&
message.data['target'] != null) {
String targetid = message.data['target'];
getIt<SharedPreferences>().setString('targetid', targetid);
bool checkid = true;
navigatorKey.currentState!.pushNamed(upcomingDetails);
} else if (message.data['module'] == 'Invoices' &&
message.data['entityid'] != null &&
message.data['target'] == null) {
String entityid = message.data['entityid'];
navigatorKey.currentState!.pushNamed(landing);
var targetid = null;
getIt<SharedPreferences>().setString('targetid', targetid);
}
// else if (message.data['module'] == 'Invoices' &&
// message.data['target'] == null) {
// navigatorKey.currentState!.pushNamed(InvoiceScreen);
// }
else if (message.data['module'] == 'Payments') {
navigatorKey.currentState!.pushNamed(totalPayment);
} else if (message.data['module'] == 'KYC' &&
message.data['entityid'] != null) {
String entityid = message.data['entityid'];
getIt<SharedPreferences>().setString('companyId', entityid);
navigatorKey.currentState!.pushNamed(kycVerification);
} else if (message.data['module'] == 'Entities') {
navigatorKey.currentState!.pushNamed(InvoiceScreen);
}
}
}
FirebaseMessaging.instance.getInitialMessage().then((消息) {
您的代码
});