async void CheckNotifications()
        {
            if (App.CurrentApp.FromRemoteNotification)
            {
                /*await DisplayAlert(App.CurrentApp.NotificationData["title"],
                 *                                         //App.CurrentApp.NotificationData["body"],
                 *                                         string.Join(",", App.CurrentApp.NotificationData.Keys)
                 + ":" + string.Join(",", App.CurrentApp.NotificationData.Values),
                 +                                         "Aceptar");*/



                if (App.CurrentApp.NotificationData.ContainsKey("url"))
                {
                    if (App.CurrentApp.NotificationData["url"] != "chat")
                    {
                        await DisplayAlert(App.CurrentApp.NotificationData["title"],
                                           App.CurrentApp.NotificationData["body"],
                                           "Aceptar");

                        App.CurrentApp.RealmInstance.Write(() =>
                        {
                            var notifi           = new Notificacion();
                            notifi.url           = App.CurrentApp.NotificationData["url"];
                            notifi.titulo        = App.CurrentApp.NotificationData["title"];
                            notifi.mensaje       = App.CurrentApp.NotificationData["body"];
                            notifi.fecha_emision = DateTime.Now.ToString("u");
                            App.CurrentApp.RealmInstance.Add(notifi);
                        });

                        Device.OpenUri(new System.Uri(App.CurrentApp.NotificationData["url"]));
                    }
                    else
                    {
                        //ES CHAT
                        UIMessage.ShowToast("¡Te enviaron un nuevo mensaje!", ToastMessage.ToastPosition.TOP, ToastMessage.Duration.Long
                                            , null, Color.FromHex("#003464"));
                    }
                }
                else
                {
                    string url = null;

                    if (App.CurrentApp.NotificationData.ContainsKey("content"))
                    {
                        url = await ClientGuanajoven.GetURL(App.CurrentApp.NotificationData["title"], App.CurrentApp.NotificationData["body"]);

                        url = ClientGuanajoven.Data(url);
                        //await DisplayAlert("","url:"+ ClientGuanajoven.Data(url),"k");
                    }

                    App.CurrentApp.RealmInstance.Write(() =>
                    {
                        var notifi           = new Notificacion();
                        notifi.url           = url;
                        notifi.titulo        = App.CurrentApp.NotificationData["title"];
                        notifi.mensaje       = App.CurrentApp.NotificationData["body"];
                        notifi.fecha_emision = DateTime.Now.ToString("u");

                        App.CurrentApp.RealmInstance.Add(notifi);
                    });

                    if (url != null)
                    {
                        if (url != "chat" && url != "")
                        {
                            await DisplayAlert(App.CurrentApp.NotificationData["title"],
                                               App.CurrentApp.NotificationData["body"],
                                               "Aceptar");

                            Device.OpenUri(new System.Uri(url));
                        }
                        else
                        {
                            //chat
                            UIMessage.ShowToast("¡Te enviaron un nuevo mensaje!", ToastMessage.ToastPosition.TOP, ToastMessage.Duration.Long
                                                , null, Color.FromHex("#003464"));
                        }
                    }
                }
            }
        }
Пример #2
0
        async void ProcesarMensaje(FirebasePushNotificationDataEventArgs p)
        {
            var r = p.Data.Keys;

            if (p.Data.ContainsKey("gcm.notification.link_url"))
            {
                System.Diagnostics.Debug.WriteLine("URL:" + p.Data["gcm.notification.link_url"]);
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("MESSAGE");
            }
            System.Diagnostics.Debug.WriteLine("Received");

            DateTime time = DateTime.Now;

            if (p.Data.ContainsKey("gcm.notification.link_url"))
            {
                if (p.Data["gcm.notification.link_url"] == "chat")
                {
                    //CHAT
                    if (!IsInChat)
                    {
                        UIMessage.ShowToast("¡Te enviaron un nuevo mensaje!", ToastMessage.ToastPosition.TOP, ToastMessage.Duration.Long
                                            , null, Color.FromHex("#003464"));
                    }
                    else
                    {
                        if (MensajeRecibido != null)
                        {
                            MensajeRecibido(this, new ChatModel()
                            {
                                mensaje       = p.Data["aps.alert.body"],
                                created_at    = time.ToString("u").Substring(0, time.ToString("u").Length - 1),
                                envia_usuario = 0,
                            });
                        }
                    }
                }
                else
                {
                    try
                    {
                        await MainPage.DisplayAlert(p.Data["aps.alert.title"], p.Data["aps.alert.body"], "Aceptar");
                    }
                    catch { }


                    App.CurrentApp.RealmInstance.Write(() =>
                    {
                        var notifi           = new Notificacion();
                        notifi.url           = p.Data.ContainsKey("gcm.notification.link_url") ? p.Data["gcm.notification.link_url"] : null;
                        notifi.titulo        = p.Data["aps.alert.title"];
                        notifi.mensaje       = p.Data["aps.alert.body"];
                        notifi.fecha_emision = time.ToString("u");

                        App.CurrentApp.RealmInstance.Add(notifi);
                    });

                    Device.OpenUri(new Uri(p.Data["gcm.notification.link_url"]));
                }
            }
            else
            {
                App.CurrentApp.RealmInstance.Write(() =>
                {
                    var notifi           = new Notificacion();
                    notifi.url           = p.Data.ContainsKey("gcm.notification.link_url") ? p.Data["gcm.notification.link_url"] : null;
                    notifi.titulo        = p.Data["aps.alert.title"];
                    notifi.mensaje       = p.Data["aps.alert.body"];
                    notifi.fecha_emision = time.ToString("u");

                    App.CurrentApp.RealmInstance.Add(notifi);
                });
            }
        }