c# - 如何使用 C# 向 iOS 发送 FCM 推送通知?

标签 c# ios c#-4.0

我需要向 iOS 发送推送通知。 我使用下面的代码发送推送通知。 同样的代码用于向 android 发送推送通知。 它工作得很好。但是对 iOS 使用相同的代码,它不起作用。 我得到的结果是成功的,但我没有在 iOS 设备中收到推送通知。 我尝试通过 FCM 帐户发送通知,它已发送到 iOS。 但是从服务器端发送时它不起作用。

                string serverKey = "234ddsd2424sdfcsfc3443cfsc";
                string FCMURL = "https://fcm.googleapis.com/fcm/send";

                string[] tokenId = { "dhr9oDxpEk8:APA91bEQkiwJ57s2NjgyjdvQDankXWXUiBQ95jiGYZNjtETu6M-uMVrRnh5VK2_Zh-TpkH4z5h51Nqm3WUn1sxsczHfvsAva17XE97BQbi2Lyd8-74aBKjLO8a7DE-s_1ry4pBcjQzRa" ,
                "dtBlERGdhA8:APA91bGhb5vOmGgkfwgCr-l4kuvNwthH0xsaH2uRyJBaYYIvYQNxEFg3KZWBeDcYPrJuL5yd5yPM6wW40tj7fy_JrsXDCUCuFP4SUU4wSwvhw7VqLQViUJWNWNEePn77i3Gvc1DSabN1"};

                WebRequest webRequest = WebRequest.Create(FCMURL);
                webRequest.Method = "post";
                webRequest.ContentType = "application/json";
                var objNotification = new
                {
                    registration_ids = tokenId,
                    data = new
                    {
                        title = "Test",
                        body = "Testing",
                        sound = "default",
                        icon= "CT_Logo.png"


                    }
                };
                string jsonNotificationFormat = Newtonsoft.Json.JsonConvert.SerializeObject(objNotification);

                Byte[] byteArray = Encoding.UTF8.GetBytes(jsonNotificationFormat);
                webRequest.Headers.Add(string.Format("Authorization: key={0}", serverKey));
                webRequest.Headers.Add(string.Format("Sender: id={0}", serverKey));
                webRequest.ContentLength = byteArray.Length;
                webRequest.ContentType = "application/json";
                using (System.IO.Stream dataStream = webRequest.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);

                    using (WebResponse webResponse = webRequest.GetResponse())
                    {
                        using (System.IO.Stream dataStreamResponse = webResponse.GetResponseStream())
                        {
                            using (System.IO.StreamReader tReader = new System.IO.StreamReader(dataStreamResponse))
                            {
                                String responseFromFirebaseServer = tReader.ReadToEnd();
                                FCMResponse response = Newtonsoft.Json.JsonConvert.DeserializeObject<FCMResponse>(responseFromFirebaseServer);
                                if (response.Success>0)
                                {

                                }
                            }
                        }
                    }
                }

有什么解决方案可以将推送通知发送到 iOS? 如果你知道这个问题的答案,请回复我。

最佳答案

试试这个 Repo,它包含一个使用 FCM 的 .Net 客户端: https://github.com/bytefish/FcmSharp

关于c# - 如何使用 C# 向 iOS 发送 FCM 推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55590836/

相关文章:

winforms - 防止 ToolStripMenuItem 上下文菜单在单击时关闭

c#-4.0 - 编写要在 Web API MessageHandler 中使用的解压缩机制

c# - 实现异步 Entity Framework 存储库的正确方法

c# - Outlook.Folder 和 Outlok.MAPIFolder 之间的区别

objective-c - 获取例程中出现死锁

ios - Firestore 文档存在在 iOS Swift 中返回错误结果

c# - 如何检测IE9中启用了哪些插件?

c# - 查找数组中的最大日期(非 LINQ)

ios - 如何在Swift中为每个UUID生成随机但唯一的颜色?

C# 如何从 linq2sql 查询返回到 main