0

Chaque fois que l'utilisateur reçoit une notification et clique dessus, il doit être redirigé vers cet onglet spécifique. Par exemple, lorsqu'un utilisateur reçoit un message et qu'il ouvre la notification, l'application doit s'ouvrir mais à l'onglet des messages. Pensez à twitter & dm's. Avec mon projet, Im essayant de mettre en œuvre quelque chose de très similaire. Dans le appdelegate et notificationReceived (OneSignal pour les notifications Push), je l'ai essayé de le faire par ceci:Modifier la barre d'onglets lorsque la notification est cliquée

let sb: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
      let messageNavigationController: UINavigationController = sb.instantiateViewController(withIdentifier: "MessagesNav") as! UINavigationController 
      self.window = UIWindow(frame: UIScreen.main.bounds) 
      self.window?.rootViewController = messageNavigationController 
      self.window?.makeKeyAndVisible() 

Mais rien ne se passe. Chaque fois qu'un utilisateur reçoit une notification, l'application ouvre simplement l'onglet principal (onglet 0). Que fais-je incorrectement?

Répondre

1

Je ne sais pas ce que vous entendez par notificationReceived, ce n'est pas une fonction prédéfinie de UIApplicationDelegate. Si vous souhaitez ouvrir des pages différentes lorsqu'une notification push arrive avec OneSignal, vous devez probablement passer votre fonction de gestion au handleNotificationAction de OneSignal.initWithLaunchOptions.

Vous mentionnez également la modification des onglets dans votre contrôleur d'onglet, mais le code que vous avez collé définit votre vue racine sur UINavigationController. Si vous voulez réellement changer d'onglet, vous devez obtenir une référence au contrôleur d'onglet et définir le bon selectedIndex dessus.

+0

Merci pour votre réponse. Je l'ai compris en déplaçant cela sur l'action de notification de poignée et la classe de contrôleur de barre d'onglets personnalisée. – Vandal