使用 c# .net 发送带有图像的 GCM 推送通知(适用于 android 应用程序)

Posted

技术标签:

【中文标题】使用 c# .net 发送带有图像的 GCM 推送通知(适用于 android 应用程序)【英文标题】:sending GCM push notification with image using c# .net (for android application) 【发布时间】:2017-10-26 09:28:57 【问题描述】:

我正在使用此 c# 代码使用 GCM 站点发送推送通知 但我也想发送带有通知标题和消息的图像。 请告诉我如何做到这一点。 我正在尝试添加“data.image”参数以添加带有通知的图像,但在获取通知图像时未添加。

我还传递了带有图像 url 的“data.image”,可以全局访问,但什么也没发生。

 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() + "&registration_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 + "&registration_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();

【问题讨论】:

【参考方案1】:

在GCM中不能直接发送图片,需要在data中添加图片的url,在接收端处理以显示结果

GCM 大小有限,可作为 JSON 工作

【讨论】:

我已经传递了带有图像 url 的 data.image 参数,但是当我收到通知时没有任何反应。 在客户端,你需要处理消息数据并加载图像。 什么是客户端?安卓? ios?还是网络? 客户端是 android ... 使用此代码我想向 android 手机发送推送通知,并使用 phonegap 在通知中显示图像 那么建议您使用 firebase FCM,因为 GCM 已过时。其次,在收到消息时,在 Android 端获取数据并在 Url 中加载图像,然后相应地生成通知。如果您使用默认值,则需要覆盖并创建它

以上是关于使用 c# .net 发送带有图像的 GCM 推送通知(适用于 android 应用程序)的主要内容,如果未能解决你的问题,请参考以下文章

如何在推送通知 (GCM) android 中发送图像?

带有 GCM 的 iOS 推送通知

用于 asp.net 的 GCM 推送通知服务器端

Android GCM:通知关闭后重复推送

Android GCM 缺少注册 C#

带有登录系统的 GCM