void _fcm_OnNotificationReceived(object source, FirebasePushNotificationDataEventArgs e)
        {
            Device.BeginInvokeOnMainThread(async() =>
            {
                if (Chat.ID == 0)
                {
                    if (e.Data.ContainsKey("type") && e.Data.ContainsKey("data"))
                    {
                        var tagObj  = e.Data["type"];
                        var dataObj = e.Data["data"];
                        if (tagObj is string tag && tag == AppConstants.FCM.Types.Message)
                        {
                            if (dataObj is string data)
                            {
                                try
                                {
                                    var chatMessage = JsonConvert.DeserializeObject <ChatMessage>(data);
                                    Chat.ID         = chatMessage.ChatID;
                                }
                                catch (JsonException ex)
                                {
                                    Debug.WriteLine(ex);
                                }
                            }
                        }
                    }
                }

                await LoadNewMessages();
            });
        }
Beispiel #2
0
 public void AndroidPushNotification(object sender, FirebasePushNotificationDataEventArgs p)
 {
     try
     {
         ISharedPreferences pref = GetSharedPreferences("MEI_UserPreferences", FileCreationMode.Private);
         if (pref.Contains("MEI_UserNotificaiton"))
         {
             if (pref.GetBoolean("MEI_UserNotificaiton", true) && !string.IsNullOrEmpty(pref.GetString("MEI_UserData", String.Empty)))
             {
                 var message  = App.HtmlToPlainText(p.Data["message"].ToString());
                 var header   = p.Data["header"].ToString();
                 var imageURL = p.Data["image"].ToString();
                 if (imageURL == "" || imageURL.ToLower().Contains("pdf"))
                 {
                     SendNotification(message, header);
                 }
                 else
                 {
                     SendNotification(message, header, imageURL);
                 }
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
Beispiel #3
0
        private void CurrentOnOnNotificationReceived(object source, FirebasePushNotificationDataEventArgs e)
        {
            try
            {
                var title   = e.Data["title"].ToString();
                var message = e.Data["body"].ToString();

                if (title == "")
                {
                    return;
                }
                if (message == "")
                {
                    return;
                }
                Xamarin.Essentials.MainThread.BeginInvokeOnMainThread(async() =>
                {
                    await Application.Current.MainPage.DisplayAlert(title, message,
                                                                    AppTranslations.Close);
                });
            }
            catch (Exception)
            {
            }
        }
Beispiel #4
0
        private void FirebasePushNotification_OnNotificationReceived(object source, FirebasePushNotificationDataEventArgs e)
        {
            if (!IsNotificationData(e.Data))
            {
                return;
            }

            var args = new NotificationEventArgs(new Dictionary <string, object>(e.Data));

            OnNotificationReceivedEvent(args);
        }
Beispiel #5
0
        void Current_OnNotificationReceived(object source, FirebasePushNotificationDataEventArgs e)
        {
            try
            {
                System.Diagnostics.Debug.WriteLine("Received");

                if (e.Data.ContainsKey("body"))
                {
                    Device.BeginInvokeOnMainThread(() => {
                        lblMessage.Text = $"{e.Data["body"]}";
                    });
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Excepton on Received:" + ex.Message);
            }
        }
Beispiel #6
0
 void _fcm_OnNotificationReceived(object source, FirebasePushNotificationDataEventArgs e)
 {
     // TODO improve to not update everything on any kind of message
     Device.BeginInvokeOnMainThread(UpdateChatEntriesCommand.Execute);
 }
Beispiel #7
0
        private void Current_OnNotificationReceived(object source, FirebasePushNotificationDataEventArgs e)
        {
            string gelen = JsonConvert.SerializeObject(e.Data);

            Debug.WriteLine(gelen);
        }
Beispiel #8
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"] != null && p.Data["gcm.notification.link_url"].ToString() == "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"].ToString(),
                                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"].ToString(), p.Data["aps.alert.body"].ToString(), "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"].ToString() : null;
                        notifi.titulo        = p.Data["aps.alert.title"].ToString();
                        notifi.mensaje       = p.Data["aps.alert.body"].ToString();
                        notifi.fecha_emision = time.ToString("u");

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

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

                    App.CurrentApp.RealmInstance.Add(notifi);
                });
            }
        }
Beispiel #9
0
 void _fcm_OnNotificationReceived(object source, FirebasePushNotificationDataEventArgs e)
 {
     Debug.WriteLine(e);
     Device.BeginInvokeOnMainThread(UpdateUser);
 }