我正在使用此 C# 代码通过 GCM 站点发送推送通知 但我也想发送带有通知标题和消息的图像。 请告诉我如何实现这一点。 我正在尝试添加"data.image"参数以添加带有通知的图像,但在获取通知图像时未添加。
我还传递了带有图像URL的"data.image",该URL可以全局访问,但没有任何反应。
var applicationID = "some_id";
// SENDER_ID is nothing but your ProjectID (from API Console- google code)//
var SENDER_ID = "My-Id";
var value = message;
var title = titl;
//var image = "https://dl.dropboxusercontent.com/u/887989/antshot.png";
//var imgstat = "http://justcash.co.in/img/logo0011.png";
WebResponse tResponse;
WebRequest tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
tRequest.Method = "post";
tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8";
tRequest.Headers.Add(string.Format("Authorization: key={0}", applicationID));
tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
string postData = "collapse_key=score_update&time_to_live=1000&delay_while_idle=1&data.title=" + title + "&data.message="
+ value + "&data.time=" + System.DateTime.Now.ToString() + "®istration_id=" + regId + "&data.image=" + "some-image-source";
//string postData = "collapse_key=score_update&time_to_live=1000&delay_while_idle=1&data.title=" + title + "&data.message="
// + value + "&data.time=" + System.DateTime.Now.ToString() + "&data.image=" + image + "®istration_id=" + regId + "";
Console.WriteLine(postData);
Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
tRequest.ContentLength = byteArray.Length;
dataStream = tRequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
tResponse = tRequest.GetResponse();
dataStream = tResponse.GetResponseStream();
tReader = new StreamReader(dataStream);
sResponseFromServer = tReader.ReadToEnd();
tReader.Close();
dataStream.Close();
tResponse.Close();
不能直接在 GCM 中发送图像,需要在数据中添加图像的 url,在接收端处理以显示结果
GCM 的大小有限,可以作为 JSON 工作