Firebase云消息传递和C#服务器端代码

我在我的Android和iOS应用程序中使用FCM。 客户端代码工作正常,因为从Firebase控制台我可以向两个平台发送通知而不会出现任何问题。 使用我的C#代码,我可以成功向Android设备发送通知,但除非直接来自Firebase通知控制台,否则通知永远不会出现在iPhone上。 我不知道是什么给了。

C#服务器端代码

try { var applicationID = "application_id"; var senderId = "sender_id"; string deviceId = "device_id_of_reciever"; WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); tRequest.Method = "post"; tRequest.ContentType = "application/json"; var data = new { to = deviceId, notification = new { body = "This is the message", title = "This is the title", icon = "myicon" } }; var serializer = new JavaScriptSerializer(); var json = serializer.Serialize(data); Byte[] byteArray = Encoding.UTF8.GetBytes(json); tRequest.Headers.Add(string.Format("Authorization: key={0}", applicationID)); tRequest.Headers.Add(string.Format("Sender: id={0}", senderId)); 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()) using (StreamReader tReader = new StreamReader(dataStreamResponse)) { String sResponseFromServer = tReader.ReadToEnd(); Response.Write(sResponseFromServer); } } } } catch (Exception ex) { Response.Write(ex.Message); } 

使用我的服务器端代码,iPhone上的通知不起作用,但我从Firebase得到了很好的回复。

  { "multicast_id": 479608 XXXXXX529964, "success": 1, "failure": 0, "canonical_ids": 0, "results": [{ "message_id": "0:1467935842135743%a13567c6a13567c6" }] } 

任何帮助或建议将非常感激。

尝试在FCM请求中将优先级字段设置为“高”。

例如:

 var data = new { to = deviceId, notification = new { body = "This is the message", title = "This is the title", icon = "myicon" }, priority = "high" }; 

请注意,虽然在开发中使用高优先级很好但是在生产中它应该仅在用户需要采取行动时使用,例如回复聊天消息。