如何将按钮添加到 firebase 消息通知?

how to add buttons to firebase messaging notification?

我是 flutter 的新手,我正在使用 firebase-Messaging 向我们使用 web API 的设备发送通知,向 firebase 发送请求以发送通知,而 firebase 向 android. 我想在通知标题下 body 显示两个按钮(接受和拒绝),例如瓦茨应用程序通知“标记为已读”选项我想要这样的东西。

Android 我添加的清单文件:

<intent-filter>
            <action android:name="FLUTTER_NOTIFICATION_CLICK" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

flutter代码

 final FirebaseMessaging _firebaseMessaging = FirebaseMessaging(); 
if(user != null)
{
  Navigator.push(context,
            MaterialPageRoute(builder: (context) => InitialPage()));

          _firebaseMessaging.onTokenRefresh.listen(sendTokenToServer);
          _firebaseMessaging.getToken();
       //   _firebaseMessaging.subscribeToTopic('all');

          _firebaseMessaging.configure(
            onMessage: (Map<String, dynamic> message) async {
              print("onMessage: $message");
              final notification = message['data'];

            },
            onLaunch: (Map<String, dynamic> message) async {
              print("onLaunch: $message");
            },
            onResume: (Map<String, dynamic> message) async {
              print("onResume: $message");
            },
          );
          _firebaseMessaging.requestNotificationPermissions(
              const IosNotificationSettings(sound: true, badge: true, alert: true));


      } 

web api 服务代码

 public class NotificationController : ApiController
{
    //api/user
    public IHttpActionResult GetUsers()
    {
       
            WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
            tRequest.Method = "post";
            //serverKey - Key from Firebase cloud messaging server  
            tRequest.Headers.Add(string.Format("Authorization: key={0}", "xxxxxxxxxxxxxxxxxxxxxx"));
            //Sender Id - From firebase project setting  
            tRequest.Headers.Add(string.Format("Sender: id={0}", "123456"));
            tRequest.ContentType = "application/json";
        var payload = new
        {
            
            to = "wwwwwwwwwwww",
            priority = "high",
            content_available = true,
            notification = new
            {
                body = "test body",
                title = "Test title",
                badge = 1,
               
                },
                data = new
                {
                    key1 = "value1",
                    key2 = "value2"
                }

            };

            string postbody = JsonConvert.SerializeObject(payload).ToString();
            Byte[] byteArray = Encoding.UTF8.GetBytes(postbody);
            tRequest.ContentLength = byteArray.Length;
            using (Stream dataStream = tRequest.GetRequestStream())
            {
                dataStream.Write(byteArray, 0, byteArray.Length);
                using (WebResponse tResponse = tRequest.GetResponse())
                {
                    using (Stream dataStreamResponse = tResponse.GetResponseStream())
                    {
                        if (dataStreamResponse != null) using (StreamReader tReader = new StreamReader(dataStreamResponse))
                            {
                                String sResponseFromServer = tReader.ReadToEnd();
                                //result.Response = sResponseFromServer;
                            }
                    }
                }
            }

            return Ok("test service");
       
       
       
    }

}

用于推送通知的 Firebase 云消息服务不提供向通知布局添加操作按钮的选项。因此,为了将操作按钮添加到通知中,我们现在唯一的方法就是在原生中创建通知并将其与 Flutter 集成。

检查this中post