我正在开发一个交付应用程序,当客户下订单时,我希望供应商应用程序在屏幕上打开,并带有2个按钮来接受或拒绝。
当供应商单击通知(onLaunch
和onResume
配置)时,它很容易做到,但是我希望它在没有任何交互的情况下发生。。
类似于某人在whatsapp上打电话给您或 FB Messenger 的情况。
这是可以实现的吗?扑朔迷离中找不到这样的东西。
答案 0 :(得分:1)
https://pub.dev/packages/flutter_local_notifications
AndroidNotificationDetails(
'full screen channel id',
'full screen channel name',
'full screen channel description',
priority: Priority.high,
importance: Importance.high,
fullScreenIntent: true),
这将打开安卓应用
答案 1 :(得分:0)
看看firebase_messaging
文档,其中说明了如何在Optionally handle background messages
上设置背景消息
答案 2 :(得分:0)
您需要使用Firebase云消息传递plug_in。它用于向Android应用发送通知。提供以下回调。
当应用打开并在前台运行时,会触发onMessage 。
如果应用已关闭,但仍在后台运行,则会触发onResume 。
如果应用程序完全终止,则会触发onLaunch 。
示例代码
final FirebaseMessaging _fcm = FirebaseMessaging();
@override
void initState() {
// ...
_fcm.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
showDialog(
context: context,
builder: (context) => AlertDialog(
content: ListTile(
title: Text(message['notification']['title']),
subtitle: Text(message['notification']['body']),
),
actions: <Widget>[
FlatButton(
child: Text('Ok'),
onPressed: () => Navigator.of(context).pop(),
),
],
),
);
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
// You can add your logic here to open accept and decline screen
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
},
);
}
您可以从Firebase控制台触发此FCM通知,也可以使用CURL。
答案 3 :(得分:-1)
对于“文档”,“通知”来自您的应用,无论是前台还是后台。 但是在这些背景情况下:通知会发送到设备的系统托盘,而数据有效载荷会在启动器活动的意图之外传递。
前台案例:您可以导航到任何屏幕。在
的帮助下final FirebaseMessaging fcmMessaging = FirebaseMessaging();
fcmMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
// your code
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
},
);