【问题标题】:how to get the current page url from the web view in android如何从android中的web视图获取当前页面url
【发布时间】:2014-05-23 11:01:40
【问题描述】:

使用webview.loadUrl(url) 方法我打开一个网址。如果我单击视图上的任何Button,它会指向另一个页面。现在我想获取定向页面的 url。我怎样才能得到它?

我还想要在 webview 上显示的内容。如何获取WebView的内容?

【问题讨论】:

    标签: android url webview


    【解决方案1】:
    String webUrl = webView.getUrl();
    

    【讨论】:

      【解决方案2】:

      请看我的回答 能不能帮到你……!!!!

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

      【讨论】:

      • 我无法从任何被覆盖的方法中获取任何消息。
      【解决方案3】:

      我假设你已经设置了WebViewClient。如果没有,那么你可以像下面这样,

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

      在这里,当您单击WebView 上的任何链接时,它将调用shouldOverrideUrlLoading(),您可以在currentUrl 中获取当前网址。

      【讨论】:

      • 请注意,currentUrl 在返回时不会更新。另一种方法是覆盖onPageStarted
      【解决方案4】:

      这是处理 API > 20 的最简单的方法:显然还有其他方法可以使用 HTMLCleaner 等解析器进行更多控制。但是,这对于获取 URL 来说既好又简单。每次 Webview 中的 URL 发生变化,请求对象中的 URL 也会发生变化。

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

      您也可以通过覆盖 webviewclient 的 onpagefinished 方法来拨打电话。我想注意这一点,因为这是在页面完成加载时调用的。

      【讨论】:

        猜你喜欢
        • 2011-05-25
        • 2011-06-17
        • 2011-07-27
        • 1970-01-01
        • 2013-09-21
        • 1970-01-01
        • 2011-04-27
        • 1970-01-01
        • 2015-11-11
        相关资源
        最近更新 更多