Détecter quand WKWebView a fini de charger à CHAQUE fois

J'ai un WKWebView application qui s'exécute sur iOS8 sur iPad (standard iPad UserAgent : "Mozilla/5.0 (iPad; PROCESSEUR OS 8_1_1 comme Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B436 Safari/600.1.4"). J'ai essayé tous les délégués et les auditeurs, je pense, pour essayer de détecter quand une page a fini de charger, à chaque fois. Voici le problème:

  1. Ouvrir votre WKWebView et aller sur Google. Les éléments suivants sont appelés:

    _decidePolicyForNavigationAction
    _didStartProvisionalNavigation
    _ didFinishNavigation
  2. Type “YouTube” dans Google:
    SEULEMENT _decidePolicyForNavigationAction est appelé. Pas de didStartProvisionalNavigation ou didFinishNavigation

  3. Cliquez sur YouTube dans Google. Les éléments suivants sont appelés:

    _didStartProvisionalNavigation
    _decidePolicyForNavigationAction
    _ didFinishNavigation
  4. À partir de maintenant, au sein de YouTube rien n'est appelé. Cliquez sur une vidéo sur YouTube et pas de didStartProvisionalNavigation ou didFinishNavigation. Aussi, webview.le chargement de l'observateur n'est plus appelé. Même decidePolicyForNavigationAction n'est appelée que chaque maintenant et puis. CEPENDANT... La webView.backForwardList.currentItem est mis à jour après chaque clic, donc, ce doit être détecter quand la page a fini de se charger, en quelque sorte?

Ce problème se produit sur beaucoup d'autres sites trop (Vimeo par exemple). Je sais que ce type de site n'est pas la mise à jour du cadre principal, à chaque fois, mais est-ce le manque de capacité de détecter lorsque le chargement a commencé/terminé une "limitation" de WKWebView dans son état actuel?

Ce que je veux réaliser est la suivante: est-il un autre moyen de détecter lorsque la navigation est TERMINÉE, CHAQUE FOIS dans Java mobile des sites web comme YouTube/Vimeo:

  • À l'aide de NSURLProtocol ou similaires?
  • Ou peut-être un moyen de détecter le moment où
    webView.backForwardList.currentItem est mis à jour?

Merci pour toute aide.

  • Découvrez stackoverflow.com/questions/32660051/... j'ai utiliser la webview.le scrollView.contentSize de la propriété à vérifier sur la hauteur, et si c'est le zéro, puis je me souviens de la fonction correspondante avec un peu de retard jusqu'à ce que son ensemble.
  • Merci, mais je ne suis pas d'essayer de détecter lorsque le WKWebView apparaît sur l'écran - je veux WKWebView pour me prévenir lorsque des sites qui utilisent Java uniquement (YouTube mobile, Vimeo mobile etc) de début et de FIN de chargement pour les clics à l'INTÉRIEUR de leurs sites sur iPhone. WKWebView n'appelle pas n'importe QUOI une fois de YouTube a chargé sur iPhone... Vous pouvez continuer à naviguer sur le site et aucun délégué méthodes sont appelées.
  • Le problème avec les vues web, c'est que, pour les sites que vous n'avez pas le contrôle (et pourrait donc insérer un événement spécifique des crochets dans) le concept de "done loading" commence à être très difficile à définir, une fois que vous commencer à essayer de le bloquer de façon générique. Le chargement des fichiers Javascript et en cours d'exécution dans une page, comme c'est généralement le moderne des sites complexes, peut tirer vers le bas de contenu via le non-demandes de page, puis de renseigner la page après le HTML d'origine et de ses ressources ont entièrement téléchargé et le DOM est construit. Qu'est ce que vous voyez dans YOUTUBE et Vimeo. La page n'est pas techniquement naviguer n'importe où.
  • Solution prête à swift: stackoverflow.com/a/40730365/4488252
InformationsquelleAutor AT3D | 2015-04-13