예제 #1
0
        public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action <UIBackgroundFetchResult> completionHandler)
        {//esta es la que se llama con la consola de firebase,  falta hacerlo desde el php
            Messaging.SharedInstance.AppDidReceiveMessage(userInfo);

            // Generate custom event
            NSString[] keys       = { new NSString("Event_type") };
            NSObject[] values     = { new NSString("Recieve_Notification") };
            var        parameters = NSDictionary <NSString, NSObject> .FromObjectsAndKeys(keys, values, keys.Length);

            // Send custom event
            Firebase.Analytics.Analytics.LogEvent("CustomEvent", parameters);

            if (application.ApplicationState == UIApplicationState.Active)
            {
                System.Diagnostics.Debug.WriteLine(userInfo);

                var aps_d  = userInfo["aps"] as NSDictionary; //titulo que trae el json
                var _alert = aps_d["alert"] as NSDictionary;
                var body   = _alert["body"] as NSString;      //keys
                var title  = _alert["title"] as NSString;
                Console.Write("infooo" + title + "   " + body);
                if (_alert.ContainsKey(new NSString("data")))
                {
                    var  _data       = _alert.ValueForKey(new NSString("data")) as NSDictionary;//jala la cita
                    Cita _citaActual = JsonConvert.DeserializeObject <Cita>((aps_d["data"]).ToString());
                    Console.Write("info cita" + _citaActual.Fn_GetInfo());
                    _citaActual.Fn_SetValores();
                    App.Fn_SetCita(_citaActual);
                    string _titulo  = "";
                    string _mensaje = "";
                    if (_citaActual.v_estado == "0")
                    {
                        _titulo  = "Aviso de cita";
                        _mensaje = "Se ha Terminado una cita";
                    }
                    else if (_citaActual.v_estado == "2")
                    {
                        _titulo  = "Aviso de cita";
                        _mensaje = "Se ha reagendado una cita";
                    }
                    else if (_citaActual.v_estado == "3")
                    {
                        _titulo  = "Aviso de cita";
                        _mensaje = "Se ha aceptado una cita";
                    }
                    else if (_citaActual.v_estado == "4")
                    {
                        _titulo  = "Aviso de cita";
                        _mensaje = "Se ha cancelado una cita";
                    }
                    debugAlert(_titulo, _mensaje, "Revisar");
                }
                else//es una nootif normal, solo mensaje y titulo
                {
                    debugAlert(title, body, "Aceptar");
                }
            }
        }
예제 #2
0
        public void WillPresentNotification(UNUserNotificationCenter center, UNNotification notification, Action <UNNotificationPresentationOptions> completionHandler)
        {
            var title = notification.Request.Content.Title;
            var body  = notification.Request.Content.Body;

            Console.Write("infooo" + title + "   " + body);
            var UserINfo = notification.Request.Content.UserInfo;

            if (UserINfo.ContainsKey(new NSString("data")))
            {
                var  _data       = UserINfo.ValueForKey(new NSString("data")) as NSDictionary;//jala la cita
                Cita _citaActual = JsonConvert.DeserializeObject <Cita>((UserINfo["data"]).ToString());
                Console.Write("info cita" + _citaActual.Fn_GetInfo());
                _citaActual.Fn_SetValores();
                App.Fn_SetCita(_citaActual);
                string _titulo  = "";
                string _mensaje = "";
                if (_citaActual.v_estado == "0")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha Terminado una cita";
                }
                else if (_citaActual.v_estado == "2")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha reagendado una cita";
                }
                else if (_citaActual.v_estado == "3")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha aceptado una cita";
                }
                else if (_citaActual.v_estado == "4")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha cancelado una cita";
                }
                debugAlert(_titulo, _mensaje, "Revisar");
            }
            else//es una nootif normal, solo mensaje y titulo
            {
                debugAlert(title, body, "Aceptar");
            }
        }
예제 #3
0
        public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo)
        {
            var aps_d = userInfo["aps"] as NSDictionary; //titulo que trae el json
            var body  = aps_d["message"] as NSString;    //keys
            var title = aps_d["title"] as NSString;

            Console.Write("infooo" + title + "   " + body);
            if (aps_d.ContainsKey(new NSString("data")))
            {
                var  _data       = aps_d.ValueForKey(new NSString("data")) as NSDictionary;//jala la cita
                Cita _citaActual = JsonConvert.DeserializeObject <Cita>((aps_d["data"]).ToString());
                Console.Write("info cita" + _citaActual.Fn_GetInfo());
                _citaActual.Fn_SetValores();
                App.Fn_SetCita(_citaActual);
                string _titulo  = "";
                string _mensaje = "";
                if (_citaActual.v_estado == "0")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha Terminado una cita";
                }
                else if (_citaActual.v_estado == "2")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha reagendado una cita";
                }
                else if (_citaActual.v_estado == "3")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha aceptado una cita";
                }
                else if (_citaActual.v_estado == "4")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha cancelado una cita";
                }
                debugAlert(title, body, "Revisar");
            }
            else//es una nootif normal, solo mensaje y titulo
            {
                debugAlert(title, body, "Aceptar");
            }
        }
예제 #4
0
        public override void OnMessageReceived(RemoteMessage message)
        {
            /*
             * USUARIO ELIGE EL DIA Y LA HORA, ESO SE LE ENVIA AL MEDICO,
             * MEDICO RECIBE LA CITA, SI ACEPTA
             *
             * en firebase copnsole,   al enviar el mensaje, hasta abajo en adavanced option-> custom data->key de message
             * es para recibir esta info de abajo   se envia como data   en el archivo /firebase/index.php */

            /*DESDE CONSOLE FIREBASE   SE MANDA COMO EXTRA->TU LE PONES EL KEY Y SU VALOR
             * ESA LLEGA DIRECTO A REMOTEMESSAGE.GETNOTIFICACION()   AHI LLEGAN LOS VALORES DEL FIREBASE
             * MESSAGETEXT  ES EL VALOR DEL MENSAJE COMPLETO
             * IR A LAS OPCIONALES
             */

            /*ttl  timetolive,  se manda en segundos es el tiempo de expiracion
             *
             * https://firebase.google.com/docs/cloud-messaging/http-server-ref
             * https://documentation.onesignal.com/reference#create-notification
             *
             * JSON QUE LLEGA DESDE EL PHP
             * {
             * "to": "fsVPtHKu-f4:APA91bFFG_IM97AK9TYcaTHcWnWe-
             * ZDLNZWWtCZBI9YJhImOt6dt4Pr910BifNaunJoKCHAsMZjh
             * 5Go7kZr4SJgNr31x52f8e9Q1WMWQxhzI3Rw22S9Wp47DZAXemRmbNFH5lN5fWq4c",
             * "data": {
             * "title": "titulo",
             * "message": "fsdfds",
             * "image": "",
             * "action": "",
             * "action_destination": "",
             * "estadoo":"1"
             * "data": {
             * "extra": "info extra 1\nngvjhfgujhg\nngvjhfgujh\nngvjhfgujhg\nngvjhfgujhg",
             * "extra2": "info extra 22222ojbgjkhv jkhv jkhvbjkhvjkhvbkuhjkvjkvjk"
             * }
             * }
             * }
             */

            // Notification string:          Titulo opcional que llega como el verdadero titulo  Mensaje principal a mostrar
            // Log.Debug(TAG, "Notification string: " + message.GetNotification().Title+"  "+message.GetNotification().Body+"  "+
            //954999819863          1538664774942      2419200
            //   message.From+"   "+ message.SentTime+"   " +message.To+"   "+message.Ttl);



            C_Notificacion _minotif = new C_Notificacion();

            if (message.GetNotification() == null)//LLEGA DESDE EL PHP
            {
                _minotif = new C_Notificacion(message.Data["title"], message.Data["message"]);
            }
            else
            {
                _minotif = new C_Notificacion(message.GetNotification().Title, message.GetNotification().Body);
            }

            if (message.Data.ContainsKey("data"))//tiene la info para la cita
            {
                //Cita _citaActual = new Cita(message.Data["estado"]);
                Cita _citaActual = JsonConvert.DeserializeObject <Cita>(message.Data["data"]);
                Console.Write("info cita" + _citaActual.Fn_GetInfo());
                _citaActual.Fn_SetValores();
                App.Fn_SetCita(_citaActual);
                string _titulo  = "";
                string _mensaje = "";
                if (_citaActual.v_estado == "0")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha Terminado una cita";
                }
                else if (_citaActual.v_estado == "2")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha reagendado una cita";
                }
                else if (_citaActual.v_estado == "3")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha aceptado una cita";
                }
                else if (_citaActual.v_estado == "4")
                {
                    _titulo  = "Aviso de cita";
                    _mensaje = "Se ha cancelado una cita";
                }
                SendNotification(_mensaje, _titulo);
            }
            else//es una nootif normal, solo mensaje y titulo
            {
                SendNotification(_minotif.v_cuerpo, _minotif.v_titulo);
            }
        }