web-dev-qa-db-fra.com

Android, attrapez l'URL de redirection webview

Ma vue Web charge une URL qui, une fois le chargement terminé, est remplacée par une autre URL. comment puis-je attraper la nouvelle URL. getURL() renvoie toujours la 1ère URL et non la seconde. Je peux voir la nouvelle URL si j'utilise un navigateur mais je ne peux pas l'obtenir depuis la vue Web.

24
a fair player

Vous pouvez utiliser un client Web et implémenter shouldOverrideUrlLoading pour intercepter toutes les URL avant que le WebView ne les charge.

    mWebView.setWebViewClient(new WebViewClient() {


        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
           // Here put your code
              Log.d("My Webview", url);

           // return true; //Indicates WebView to NOT load the url;
              return false; //Allow WebView to load url
        }
    });
42
jDur

Utilisation

getOriginalUrl () 

Il renvoie l'URL initialement demandée pour la page actuelle

getUrl () n'est pas toujours la même que l'URL transmise à WebViewClient.onPageStarted car bien que le chargement de cette URL ait commencé, la page actuelle n'a peut-être pas changé.

getOriginalUrl () obtient l'URL d'origine de la page actuelle. Ce n'est pas toujours la même que l'URL transmise à WebViewClient.onPageStarted Car bien que le chargement de cette URL ait commencé, la page en cours n'a peut-être pas changé. En outre, il peut y avoir eu des redirections entraînant une URL différente de celle initialement demandée.

4