无法接收iOS Xamarin形式的通知

时间:2019-01-23 13:49:06

标签: ios firebase xamarin.forms firebase-cloud-messaging

我已经在Xamarin形式的跨平台中为ios和android开发了应用程序。我在通知中面临的问题是,即使我可以从通知数据中打开特定的页面,我也可以在android中接收通知,并且它的工作状况也很好,但是在IOS中,我无法接收通知。这是我发送通知的代码

$('.imageClass').attr('src').replace('bn1nv1', 'bn1v1');

使用此代码,我能够接收通知,甚至可以打开特定页面,但只能使用android,它不能与ios一起使用,但是当我尝试从firebase控制台向iOS发送通知时,它可以正常工作。

这是我的appdelegate.cs

   public async void NewTaskNotification(string user_token, string titlee, string bodyy, string openpage, long? mrno, DateTime? appointmentdate)
    {
        i++;
        WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
        tRequest.Method = "post";
        tRequest.ContentType = "application/json";
        var objNotification = new
        {
            to = user_token,
            data = new
            {
                title = titlee,
                body = bodyy,
                priority = "high",
                id = i,
                icon = "ic_stat_ic_stat_ic_notification",
                color = "#2F3C51",
                Background = "#2F3C51",
                open_page = openpage,
                mr_no = mrno,
                appointmentDate = appointmentdate,
            },
        };
        string jsonNotificationFormat = Newtonsoft.Json.JsonConvert.SerializeObject(objNotification);
        Byte[] byteArray = Encoding.UTF8.GetBytes(jsonNotificationFormat);
        tRequest.Headers.Add(string.Format("Authorization: key={0}", "AAAAoQ445fk:APA91bHagr12v6bGUqE2d8soHCMXwo4rD6wyM_LFp6yD9b968J3SQQ9u8T5rsFBtsPzL-ct_cCjad_YPpEjaw5tq_OqR_asB5-zgKqyQfhV2djFxAAbK7PBPCZHMI2Y6KmNN8R-MItOA"));
        tRequest.Headers.Add(string.Format("Sender: id={0}", "691728344569"));
        tRequest.ContentLength = byteArray.Length;
        tRequest.ContentType = "application/json";
        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 responseFromFirebaseServer = tReader.ReadToEnd();
                        FCMResponse response = Newtonsoft.Json.JsonConvert.DeserializeObject<FCMResponse>(responseFromFirebaseServer);
                        if (response.success == 1)
                        {
                            Console.WriteLine("succeeded");
                        }
                        else if (response.failure == 1)
                        {
                            Console.WriteLine("failed");

                        }
                    }
                }
            }
        }
    }

我需要知道IOS在哪里做错了

0 个答案:

没有答案