要确定客户端是否实际接收到了推送通知,可以在获取到推送 ID 后,向客户端发送消息确认请求。客户端收到这个请求后,回复确认收到推送通知。
以下是一段可供参考的代码示例:
服务器端:
// 发送请求确认推送通知是否收到
private async Task SendPushNotificationConfirm(string pushNotificationId, string clientToken)
{
var messaging = FirebaseMessaging.DefaultInstance;
var message = new Message
{
Data = new Dictionary<string, string>
{
{"action", "pushConfirm"},
{"pushId", pushNotificationId}
},
Token = clientToken
};
await messaging.SendAsync(message);
}
// 处理客户端发送的确认推送通知请求
[HttpPost]
public ActionResult Post()
{
var action = Request.Form["action"]?.ToString();
if (action == "pushConfirm")
{
var pushId = Request.Form["pushId"]?.ToString();
// 根据pushId,进行相应的处理
// ...
}
return new EmptyResult();
}
客户端:
// 发送确认收到推送通知请求
function sendPushNotificationConfirm(pushNotificationId)
{
$.ajax({
type: "POST",
url: "http://yourserver.com/yourcontroller/post",
data: {
action: "pushConfirm",
pushId: pushNotificationId
}
});
}
当客户端收到推送通知后,调用 sendPushNotificationConfirm
方法向服务器发送确认请求即可。服务器端会获取请求中的 pushId
,然后执行相应的逻辑。