从Firebase Cloud Messaging控制台显示自定义数据到Flutter应用程序?

问题描述 投票:0回答:1

[嗨,有什么方法可以使用我在Firebase Cloud Messaging控制台中设置的keyvalueAdditional Options用于在Flutter应用程序中向DISPLAY推送通知吗?

我在使这项工作变得困难时,示例,我在FCM控制台中使用url作为键,并使用一个链接作为我的值。

我真正想要的是这样的:当我发送推送通知时,它会显示到我的应用程序中的自定义屏幕/ url_launcher / widget,并且该屏幕/ url_launcher / widget会显示我在FCM控制台中使用和VALUE

问题是如何在我的应用程序中显示此数据?我该如何使用这些键和值?我有点不知道如何编码tbh

下面是我的代码:

import 'dart:async'; import 'dart:io'; import 'dart:math'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; import 'package:url_launcher/url_launcher.dart'; class HomePage extends StatefulWidget { HomePage({Key key}) : super(key: key); @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { final FirebaseMessaging _firebaseMessaging = FirebaseMessaging(); @override void initState() { super.initState(); firebaseCloudMessagingListeners(); } void firebaseCloudMessagingListeners() { if (Platform.isIOS) iOSPermission(); _firebaseMessaging.getToken().then((token){ print(token); }); _firebaseMessaging.configure( onMessage: (Map<String, dynamic> message) async { print('on message $message'); }, onResume: (Map<String, dynamic> message) async { print('on resume $message'); }, onLaunch: (Map<String, dynamic> message) async { print('on launch $message'); }, ); } void iOSPermission() { _firebaseMessaging.requestNotificationPermissions( IosNotificationSettings(sound: true, badge: true, alert: true) ); _firebaseMessaging.onIosSettingsRegistered .listen((IosNotificationSettings settings) { print("Settings registered: $settings"); }); } WebViewController _myController; final Completer<WebViewController> _controller = Completer<WebViewController>(); @override Widget build(BuildContext context) { return SafeArea( child: Scaffold( body: WebView( initialUrl: 'https://syncshop.online/en/', javascriptMode: JavascriptMode.unrestricted, onWebViewCreated: (controller) { _controller.complete(controller); }, onPageFinished: (controller) async { (await _controller.future).evaluateJavascript("document.getElementsByClassName('footer-container')[0].style.display='none';"); (await _controller.future).evaluateJavascript("document.getElementById('st_notification_1').style.display='none';"); (await _controller.future).evaluateJavascript("document.getElementById('sidebar_box').style.display='none';"); }, ), floatingActionButton: FutureBuilder<WebViewController>( future: _controller.future, builder: (BuildContext context, AsyncSnapshot<WebViewController> controller) { if (controller.hasData) { return FloatingActionButton( onPressed: () { controller.data.reload(); }, child: Icon(Icons.refresh), ); } return Container(); } ), ), ); } }

android firebase flutter firebase-cloud-messaging flutter-layout
1个回答
0
投票
这是从控制台发送自定义数据的方式,

enter image description here

您可以收到这样的通知,

_firebaseMessaging.configure( onMessage: (Map<String, dynamic> message) async { print("$message");

输出

{通知:{标题:rrakkk,正文:wer},数据:{url:stackoverflow}}

如何从上方获取url值?

print("${message['data']['url']}");
输出

stackoverflow
© www.soinside.com 2019 - 2024. All rights reserved.