简体   繁体   English

如何在 Java 中使用 WebResourceRequest 获取 WebView 的 URL?

[英]How to get Url of the WebView using WebResourceRequest in Java?

I have these codes:我有这些代码:

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

I just want to know, how can I obtain the Url of the webView to override the Url loading.我只想知道,如何获取 webView 的 Url 来覆盖 Url 加载。 The shouldOverrideUrlLoading(WebView view, String url) method is depreceated in API21. shouldOverrideUrlLoading(WebView view, String url)方法。

Thanks in advance!提前致谢!

in \\Android\\sdk\\sources\\android-25\\android\\webkit\\WebViewClient.java , you can see this code.\\Android\\sdk\\sources\\android-25\\android\\webkit\\WebViewClient.java 中,您可以看到此代码。

So short answer to your question is: request.getUrl().toString()对您的问题的简短回答是: request.getUrl().toString()

Check sources on GrepCode .检查GrepCode上的来源

boolean shouldOverrideUrlLoading (WebView view, String url) deprecated in API 24, boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request) added in API level 24 boolean shouldOverrideUrlLoading (WebView view, String url)在 API 24 中被弃用, boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)添加到 API level 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;
        }
private String cUrl = "";

cUrl = webView.getUrl();

Then you can use it wherever you want.然后你可以在任何你想要的地方使用它。

please see my answer may it will help you...!!!!请看我的回答可能对你有帮助...!!!!

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);
            }
        });

how to get the current page url from the web view in android 如何从android的web视图中获取当前页面的url

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM