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

Posted

技术标签:

【中文标题】如何在 Java 中使用 WebResourceRequest 获取 WebView 的 Url?【英文标题】:How to get Url of the WebView using WebResourceRequest in Java? 【发布时间】:2017-11-08 18:23:03 【问题描述】:

我有这些代码:

   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 中已弃用。

提前致谢!

【问题讨论】:

【参考方案1】:

boolean shouldOverrideUrlLoading (WebView view, String url) 在 API 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;
        

【讨论】:

这应该是选择的答案。【参考方案2】:

\Android\sdk\sources\android-25\android\webkit\WebViewClient.java中,可以看到这段代码。

您的问题的简短回答是: request.getUrl().toString()

查看GrepCode 上的来源。

【讨论】:

如果我使用低于 25 的 API 版本怎么办【参考方案3】:
private String cUrl = "";

cUrl = webView.getUrl();

然后你可以在任何你想要的地方使用它。

【讨论】:

以上是关于如何在 Java 中使用 WebResourceRequest 获取 WebView 的 Url?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中使用引用?

如何使用java在mysql中使用\\更新文件路径?

如何在 Java 中使用 SOAP Web 服务

如何使用 AES 在 Java 中加密文件 [重复]

java - 如何在文件路径中使用空格从java调用ghostscript

如何在 Java 中使用 keyTyped?