Flutter - 从 FCM 收到通知时自动运行应用程序(无需单击它)
Posted
技术标签:
【中文标题】Flutter - 从 FCM 收到通知时自动运行应用程序(无需单击它)【英文标题】:Flutter - Automatically run the application when notification received from FCM (without clicking it) 【发布时间】:2020-08-24 11:03:57 【问题描述】:我正在开发一个交付应用程序,当客户订购一些东西时,我希望供应商应用程序在屏幕上打开两个按钮来接受或拒绝订单。
当供应商点击通知时很容易做到(onLaunch
和onResume
配置),但我希望它发生没有他们的互动。
比如有人在whatsapp或FB messanger上给你打电话。
这可以实现吗?在flutter中找不到这样的东西。
【问题讨论】:
为什么当应用程序处于后台时,您不能将这两个操作作为通知的一部分提供?前台你会触发来自 onMessageReceived 的警报。 这里建议,创建一个广播接收器来读取通知。如果从您的产品收到通知,您可以打开您的应用程序并在启动时显示警报。但是您的供应商应该允许您阅读通知。 我也在找这个,你有什么了解吗? 我认为这在 ios (***.com/questions/22930259/…) 上是不可能的,我怀疑这在 android 上是可能的。无论如何,这是一种糟糕的用户体验,我建议您继续要求用户交互,除非您在应用中实现直接调用者。 【参考方案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),
这将打开安卓应用
【讨论】:
【参考方案2】:注意:这是实现 FCM 通知的旧方法,
至于文档,通知来自您的应用程序,无论是在前台还是后台。 但是在这些背景的情况下:通知会发送到设备的系统托盘,数据负载会在启动器 Activity 的意图的附加内容中发送。
前景案例:您可以导航到任何屏幕。在
的帮助下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");
,
);
【讨论】:
【参考方案3】:查看firebase_messaging
文档,其中解释了如何在Optionally handle background messages
上设置后台消息
【讨论】:
以上是关于Flutter - 从 FCM 收到通知时自动运行应用程序(无需单击它)的主要内容,如果未能解决你的问题,请参考以下文章