2017-10-19 3 views
0

J'essaie d'intégrer OneSignal dans mon application. Ce que je veux, c'est que l'utilisateur appuie sur une notification pour présenter le ViewController souhaité de manière modale. J'ai implémenté l'ouverture de la logique VC en handleNotificationAction lors de l'initialisation de OneSignal. Le problème est que OneSignal ouvre toujours son WebView, et je ne le veux pas. Est-il possible de désactiver l'ouverture de WebView lorsque l'utilisateur tape sur la notification?Comment interdire à OneSignal d'ouvrir WebView lors de la gestion de la notification

let onesignalInitSettings = [kOSSettingsKeyAutoPrompt: false] 
OneSignal.initWithLaunchOptions(launchOptions, 
             appId: "myAppID", 
             handleNotificationAction: { result in 
              guard let payload = result?.notification.payload else { return } 
              guard let additionalData = payload.additionalData else { return } 
              guard let venueID = additionalData["internal"] as? String else { return } 
                DispatchQueue.main.async { 
                 self.showVenueDetails(venueID) 
                } 
     }, 
             settings: onesignalInitSettings) 
     OneSignal.inFocusDisplayType = .notification 
     OneSignal.promptForPushNotifications(userResponse: { accepted in 
      print("User accepted notifications: \(accepted)") 
     }) 

Répondre

0

Oui, ajoutez à votre kOSSettingsKeyInAppLaunchURL: falseonesignalInitSettings. Cela ouvrira l'URL dans le navigateur par défaut au lieu de UIWebView.

Si vous souhaitez afficher alors votre vue personnalisée ne pas utiliser le paramètre d'URL dans la charge utile. Au lieu de cela, utilisez une paire clé-valeur personnalisée dans des données supplémentaires.