Pregunta Abra la aplicación en una vista específica cuando el usuario toca notificación push con iOS Swift


Mi aplicación permite notificaciones push remotas a un usuario. ¿Cómo habilito que se abra en un controlador de vista específico cuando el usuario toca en la notificación de inserción? Quiero que la aplicación se abra y vaya a un controlador de vista específico dependiendo de la notificación de inserción recibida.


11
2017-11-14 08:15


origen


Respuestas:


Para hacer esto, necesita establecer un identifier para cada ViewController con la que se puede abrir su aplicación, y luego verifique payload en el launchOptions argumento de application:didFinishLaunchingWithOptions: en tus AppDelegate Aquí están los pasos para hacer esto:

  1. En tus PFPush, utilizar setData para agregar una clave a su carga útil con el identificador: notification.setData(["alert":"your notification string", "identifier":"firstController"])

  2. Selecciona el identifier en cada ViewController seleccionándolo y cambiando los siguientes valores

Setting the Storyboard ID

  1. Haga que su notificación push envíe la ID del guión gráfico en su payload con la llave identifier
  1. Compruebe la ID en la aplicación: didFinishLaunchingWithOptions: agregando lo siguiente al final de la función:
if let payload = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary, identifier = payload["identifier"] as? String {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier(identifier)
    window?.rootViewController = vc
}

20
2017-11-14 08:27



En AppDelegate, obtendrá un delegado de devolución de llamada "didFinishLoading" o "didReceivePushNotification" métodos (en función de su aplicación se encuentra en segundo plano o en primer plano). En ese método, obtenga la instancia del controlador con la vista más alta, luego cree el controlador de vista específico que desea mostrar y presente / presione desde la parte superior del controlador de vista.


3
2017-11-14 08:22



 UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (notification)
    {
        [self application:application didReceiveRemoteNotification:(NSDictionary*)notification];
    }

0
2018-03-08 07:26