当前位置: 首页 > 知识库问答 >
问题:

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

归德厚
2023-03-14

我是新手颤动,我使用Firebase消息发送通知到设备,我们使用Web API发送请求到Firebase发送通知和Firebase发送通知到Android。我想在通知标题和身体显示两个按钮(接受和拒绝)像瓦特应用程序通知标记为已读选项我想要这样的东西。

我添加的Android清单文件:

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

颤振码

 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");
       
       
       
    }

}

共有1个答案

桂学
2023-03-14

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

检查一下这个中号邮件

 类似资料:
  • 我正在尝试从OneSignal移动到Firebase云消息。我遇到的问题是,我无法在有效负载中定义键值对来本地化通知。我必须在我的应用程序中的字符串文件中定义一个键值对。这意味着,如果我想发送一个字符串文件中未定义的完全不同的通知,则该透视图中的通知不能是动态的。 当使用OneSignal时,我可以像这样定义用于本地化的有效负载: 这对云消息传递也是可能的吗?

  • 我们使用的是Firebase云消息。有时,当Android或iOS应用程序处于睡眠模式时,手机会收到相同(重复)的通知信息。对于设备标识,使用FIRInstanceID令牌。node.js上的一个外部服务器用于向Firebase服务发送通知。我们的服务器日志文件中没有出现重复的内容。

  • 我正在将我的java项目从Rabbit MQ迁移到Kafka(出于某些原因)。 在当前的工作流中,我将所有消息发布到rabbit mq exchange中,并根据消息的路由密钥将消息重定向到一个或多个队列中。我也想保留Kafka同样的功能。(我知道Kafka本来就不适合,但我想要一个变通办法)。 基本上,我想要这样的东西:每当一个主题接收到一个消息时,基于消息中存在的元,该消息应该被重定向到其他一

  • null 我遵循Xamarin的文档实现了这个功能。 然后一步一步地执行,直到下面的部分: 后台通知 我点击了Log Token按钮并收到了令牌。 null Firebase控制台显示消息为“完成”。 我错过了什么来解决这个问题?

  • 我现在已经在我的应用程序中设置了Firebase通知,当我发送消息时,消息会发送给我的应用程序的所有用户。(我目前通过Firebase控制台发送消息。我想用另一种不涉及Firebase控制台的方式发送推送通知,我相信HTTP Post是一种简单的方式。如何使用HTTP POST远程发送推送通知?

  • 简介 除了 发送邮件 Laravel 还支持通过多种频道发送通知,包括邮件、短信 (通过 Nexmo), 以及 Slack。通知还能存到数据库,这样就能在网页界面上显示了。 通常情况下,通知应该是简短、有信息量的消息来通知用户你的应用发生了什么。举例来说,如果你在编写一个在线交易应用,你应该会通过邮件和短信频道来给用户发送一条 「账单已付」 的通知。 创建通知 Laravel 中一条通知就是一个类