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"); } } }
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"); } }
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"); } }
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); } }