Кто-нибудь может рассказать мне, как использовать функцию без кнопки. Функция должна срабатывать автоматически
Привет, я пытаюсь отобразить локальное уведомление о трепете в своем приложении. Функциональность, которую я хочу, заключается в том, что всякий раз, когда выполняется определенное условие, функция уведомления должна срабатывать, а затем она должна отображаться ... Вот исходный код ниже, пожалуйста, помогите мне (с этого момента я не могу понять, что делать ... Пожалуйста, помогите мне) ПРИМЕЧАНИЕ:- Функциональность должна выполняться без использования каких-либо кнопок на Press. Метод _show Notification() должен запускаться всякий раз, когда выполняется условие с помощью оператора if else.
***code***
import 'package:expilert/notificationscreen.dart';
import 'package:flutter/material.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
class Notifications extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PushNotifications();
}
}
class PushNotifications extends StatefulWidget {
@override
_PushNotificationsState createState() => _PushNotificationsState();
}
class _PushNotificationsState extends State<PushNotifications> {
FlutterLocalNotificationsPlugin fltrNotification;
@override
void initState() {
super.initState();
var androidInitilize = new AndroidInitializationSettings('app_icon');
var initilizationsSettings =
new InitializationSettings(android: androidInitilize);
fltrNotification = new FlutterLocalNotificationsPlugin();
fltrNotification.initialize(initilizationsSettings,
onSelectNotification: notificationSelected);
}
//this below function should be called without any button whenever the the condition is met
Future _showNotification() async {
var androidDetails = new AndroidNotificationDetails(
"Channel ID", "5555", "This is my channel",
importance: Importance.max);
var generalNotificationDetails =
new NotificationDetails(android: androidDetails);
var scheduledTime = DateTime.now().add(Duration(seconds: 10));
fltrNotification.schedule(1, "Your product has expired!!!", 'Task',
scheduledTime, generalNotificationDetails);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(),
),
);
}
Future notificationSelected(String payload) async {
print('Pressed');
Navigator.pushNamed(context, NotificationPage.id);
}
}
1 ответ
Возможно, вы написали код для получения документа в вашем приложении, сопоставления значений даты и вызова этого
PushNotification
.
Если нет, вы можете добавить слушателя в
firebase
сбор и послушайте, как изменится стоимость,
final streamUser = Firestore.instance.collection("users").snapshots().asBroadcastStream();
streamUser.listen((event) {
event.documents.forEach((user) {
print(user.data);
// add condition here and invoke PushNotification
});
});