web-dev-qa-db-ja.com

JavaでWebResourceRequestを使用してWebViewのURLを取得するにはどうすればよいですか?

私はこれらのコードを持っています:

_   public class MyAppWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            //want url of the webview in here
        }
_

知りたいのですが、WebViewのURLを取得してURLの読み込みを上書きするにはどうすればよいですか。 shouldOverrideUrlLoading(WebView view, String url)メソッドは、API21では廃止されました。

前もって感謝します!

9
Pramesh

\ Android\sdk\sources\Android-25\Android\webkit\WebViewClient.Javaに、このコードが表示されます。

したがって、あなたの質問に対する簡単な答えは次のとおりです。request.getUrl().toString()

GrepCode のソースを確認してください。

6
bjh

boolean shouldOverrideUrlLoading (WebView view, String url) AP​​I 24で非推奨、boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)APIレベル24で追加

        @RequiresApi(api = Build.VERSION_CODES.N)
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            if(Uri.parse(request.getUrl().toString()).getHost().endsWith("google.com")) {
                //The Host application wants to leave the current WebView and handle the url itself. 
                return true;
            }

            if(Uri.parse(request.getUrl().toString()).getHost().endsWith("yandex.com")) {                    
                //The current WebView handles the url. 
                return false;
            }               

            if(Uri.parse(request.getUrl().toString()).getScheme().equals("file")) {
                //The current WebView handles the url. 
                return false;
            }

            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(request.getUrl().toString()));
            view.getContext().startActivity(intent);
            return true;
        }
4
Alexander Savin

私の答えを見てくださいそれがあなたを助けるかもしれません... !!!!

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

                System.out.println("your current url when webpage loading.." + url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                System.out.println("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);
            }
        });

AndroidのWebビューから現在のページのURLを取得する方法

0
omor