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

Pra*_*esh 8 java android webview android-studio

我有这些代码:

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

我只是想知道,如何获取webView的Url来覆盖Url加载.该shouldOverrideUrlLoading(WebView view, String url)方法在API21中被贬低.

提前致谢!

Ale*_*vin 7

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;
        }
Run Code Online (Sandbox Code Playgroud)


小智 6

\ Android\sdk\sources\android-25\android\webkit\WebViewClient.java中,您可以看到此代码.

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

检查GrepCode上的代码.

  • 如果我使用低于25的API版本怎么办? (5认同)