颤动云消息和通知

时间:2019-07-12 14:21:51

标签: flutter notifications google-cloud-messaging

我正在尝试使用云消息和通知构建功能。首先,我尝试使FCM始终自动显示通知及其工作并接收消息,但是当单击通知时,它只会弹出至主要路线。我想要一个类似我的功能可以弹出特定路线或弹出多条路线(例如先弹出主路线,然后在顶部弹出聊天室路线,使用户可以按“返回”按钮返回主路线)。然后我尝试使用Flutter Local Notifications Plugin。但是似乎该库在应用终止时不显示通知,仅在应用为后台或前景时显示。任何人都有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您首先需要配置应用以接收点击事件(配置FLUTTER_NOTIFICATION_CLICK),如https://pub.dev/packages/firebase_messaging#android-integration所述

然后,您需要配置应用程序以从通知中接收数据:

class _HomePageState extends State<HomePage> {

  final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();

  @override
  void initState() {
    super.initState();
    _firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async {
        print("onMessage: $message");
        Navigator.of(context).popUntil(ModalRoute.withName('/'));
        Navigator.of(context).pushNamed('AlternativeRouteName');
      },
      onLaunch: (Map<String, dynamic> message) async {
        print("onLaunch: $message");
        Navigator.of(context).pushNamed('AlternativeRouteName');
      },
      onResume: (Map<String, dynamic> message) async {
        print("onResume: $message");
        Navigator.of(context).popUntil(ModalRoute.withName('/'));
        Navigator.of(context).pushNamed('AlternativeRouteName');
      },
    );

((阅读本节以了解有关在iOS和Android https://pub.dev/packages/firebase_messaging#receiving-messages中触发了哪个事件的更多信息)

然后您可以根据消息的数据触发正确的路由...