web-dev-qa-db-fra.com

comment obtenir l'url de la page actuelle à partir de la vue Web dans android

En utilisant la méthode webview.loadUrl(url) j'ouvre une URL. Si je clique sur Button dans la vue, il dirige vers une autre page. Maintenant, je veux obtenir l'url de la page dirigée. comment puis-je l'avoir?

Je souhaite également que le contenu soit affiché sur la vue Web. Comment obtenir le contenu du WebView?

22
Nikhila Benjaram

s'il vous plaît voir ma réponse que cela vous aide ... !!!!

WebView webview = new WebView(context);
webview.setWebViewClient(new WebViewClient()
        {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);

                Log.d("WebView", "your current url when webpage loading.." + url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                Log.d("WebView", "your current url when webpage loading.. finish" + url);
                super.onPageFinished(view, url);
            }

            @Override
            public void onLoadResource(WebView view, String url) {
                // TODO Auto-generated method stub
                super.onLoadResource(view, url);
            }
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                System.out.println("when you click on any interlink on webview that time you got url :-" + url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });
27
V.P.
String webUrl = webView.getUrl();

Si vous voulez dire que le contenu est une source de page, vous pouvez le consulter: https://stackoverflow.com/a/6503817/28557

11

Je suppose que vous avez défini votre WebViewClient. Sinon, vous pouvez faire comme ci-dessous,

webView.setWebViewClient(new MyWebViewClient());

String currentUrl;

private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {         
            currentUrl=url;
            return true;
        }
    }

Ici, lorsque vous cliquez sur un lien sur WebView, il appellera shouldOverrideUrlLoading() et vous pourrez y trouver l'url actuelle dans currentUrl.

9
Spring Breaker

c'est la façon la plus simple de gérer cela pour API> 20: Il existe évidemment d'autres méthodes avec des analyseurs comme HTMLCleaner pour avoir plus de contrôle. Cependant, c'est bon et simple pour obtenir l'URL. Chaque fois que l'URL change dans Webview, l'URL dans l'objet de demande change également.

@Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            String temp  = request.getUrl().toString();
            if(temp.isEmpty()){
                Log.i(ActivityName, "No url returned!");
            }else{
                Log.i(ActivityName, temp);
            }
            return  false;
        }

vous pouvez également passer votre appel en remplaçant la méthode onpagefinished de webviewclient. Je voulais noter cela, car cela s'appelle lorsque le chargement de la page est terminé.

0
akemko