J'ai une application WebView iOS qui reçoit des notifications et je passe une URL de sorte que lorsque l'utilisateur clique sur la notification, il ouvrira la notification WebView à cette URL.
Lorsque l'application est au premier plan et l'arrière-plan, cela fonctionne bien. . Si l'utilisateur obtient la notification lorsque l'application est fermée et que l'application ne s'exécute pas actuellement, l'application s'ouvre mais ne va pas sur cette URL p>
dans mon Appdelegate.swift strong> p> Didreceiveremotenotification code> Je détecte les différents états du App mais je pensais que .Background travaillerait la même chose que ne pas courir mais je suppose que ça ne le fait pas. Comment puis-je obtenir la notification pour ouvrir l'URL provenant du moment où l'application est fermée? P>
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UNUserNotificationCenter.current().delegate = self
ConnectionManager.sharedInstance.observeReachability()
// Override point for customization after application launch.
FirebaseApp.configure()
registerForPushNotifications()
if launchOptions != nil {
// opened from a push notification when the app is closed
let userInfo = launchOptions?[.remoteNotification] as? [AnyHashable : Any]
if userInfo != nil {
if let object = userInfo?["aps"] as? [String : AnyObject] {
let url = object["url"]
viewController?.loadRequestnotification(for: url as! String)
}
}
}
return true
}
3 Réponses :
Didreceiveremotenotification ne sera pas appelé tandis que l'application est fermée. P>
Essayez ce code lorsque votre application est fermée pour obtenir des données de notification. P>
Jetez un coup d'œil à ma question. Je l'ai édité. Je suis plus éloigné de votre réponse, mais la View ne ouvre toujours pas l'URL. Il ouvre juste l'application
Obtenez-vous URL pour webview en notification? Et vous devez définir le contrôleur root (ViewController -That contient WEBView) pour l'ouvrir.
Je suppose que lanceursOptions code> contiendra les données de la notification lors de sa pression?
Vous faites quelque chose de mal avec ViewController? .LoaderReQuestNotification (pour: URL As! String)
Vous ne pouvez pas démarrer ViewController comme ceci, vous devez plutôt la définir en tant que contrôleur root.
Non, j'utilise aussi que dans mon didreceiveremotenotification code> pour quand une notification est enfoncée lorsque l'application est en arrière-plan ou au premier plan et cela fonctionne bien.
J'ai édité la réponse. Vous devez définir un contrôleur racine là-bas.Vérifiez dans Google Comment définir le contrôleur racine
Laissez-nous Continuer cette discussion en chat .
Il y a un scénario strud> comme votre application ne fonctionne pas et que l'utilisateur clique sur la notification de votre application puis en suivant la façon dont vous pouvez l'obtenir. Voici le code que vous pouvez l'obtenir p>
Ceci est la fonction qui a appelé lorsque l'application reçoit une notification. J'ai utilisé cela dans mon application de conversation.
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { completionHandler(UNAuthorizationOptions.alert.rawValue | UIUserNotificationType.sound.rawValue | UIUserNotificationType.badge.rawValue) }
Appdelegate.php ??? Vous développez une application iOS en PHP !!!
L'application a été tuée état, lorsque la notification apparaît alors votre application dans l'initialisation et commence à partir de l'état de l'application du déjeuner, de sorte que le contrôleur ne s'initialise pas avant. Il ne sera jamais redirigé vers WebView Controller. Tout d'abord, vous devez identifier votre racine racineviewController, puis rediriger vers WebViewController. alors c'est du travail
À ce moment-là, vérifiez quefinishlaunchingwithoptions -> Lancer des lancements, il devrait y avoir un dictionnaire avec des informations.Le débogage de cela plus profond. Quand ce dictionnaire contient ce dictionnaire contient cette URL, redirige vers la mentalité respective.
Avez-vous vérifié que
ViewController code> n'est pas
nil code>? Vous pouvez faire un chèque et s'il est, stockez l'URL dans une variable et transmettez-la sur
ViewController.DiDset code>
Lorsque l'application est fermée, vous recevez une notification dans
Application (_: DidLaunch Option: _) code>
@spael lol désolé signifie écrire rapidement
Je suis un peu plus éloigné. J'ai édité ma question avec une mise à jour si vous pouvez jeter un coup d'oeil.
Lorsqu'il ne fonctionne pas, essayez d'impression d'un objet ViewController puisqu'il s'agit d'un objet facultatif et voyez s'il est nul ou non.Si c'est nul puis allouez-le puis appuyez sur cette vue de vue. Si alors rien ne fonctionne, veuillez expliquer en détail ce qui se passe exactement.