如何将按钮添加到 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
我是 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