The notifications are shown complete and without problems when using a button to generate them, but when I schedule a task with Workmanager to show the same notification, it is generated but only the title is shown and not the rest of the content which is a data type string obtained from another class. The application It is only for android.
This is the code used for flutter local notification:
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
var variableString = "Notificación de prueba";
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
Future<void> initNotifications() async {
const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher');
const DarwinInitializationSettings initializationSettingsIOS = DarwinInitializationSettings();
const InitializationSettings initializationSettings = InitializationSettings(android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
}
Future<void> showNotificacion() async {
const AndroidNotificationDetails androidNotificationDetails =
AndroidNotificationDetails(
'1', 'My App Name',
playSound: true,
importance: Importance.max,
priority: Priority.max,
showWhen: true,
showProgress: true,
enableVibration: true,
ongoing: true,
styleInformation: BigTextStyleInformation(''),
);
const NotificationDetails notificationDetails =
NotificationDetails(android: androidNotificationDetails);
await flutterLocalNotificationsPlugin.show(
1, 'My App Name', variableString, notificationDetails);
}
This is the initialization code of the App:
@pragma('vm:entry-point')
void callbackDispatcher() {
Workmanager().executeTask((task, inputData) {
showNotificacion(); // Envía una notificación cada 45 minutos
return Future.value(true);
});
}
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await initNotifications(); // Local Notifications
await Workmanager().initialize(callbackDispatcher, isInDebugMode: true);
await Workmanager().registerPeriodicTask(
"1", "simplePeriodicTask", frequency: Duration(minutes: 45),);
runApp(
const MyApp(),
);
}
I have tried obtaining the value of said variable in different ways (storing it in storage with sharedPreferences, using a global variable, etc…) but I have not been able to get the information to be displayed with flutter local notification through workmanager.
Thank you very much for your time!!
Sergio Aros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.