【问题标题】:WebView: How to find the base URL of the current page?WebView:如何找到当前页面的基本 URL?
【发布时间】:2011-10-31 15:47:21
【问题描述】:

WebView 有 getUrl()loadDataWithBaseUrl() 但我找不到返回基本 URL 的方法(注意:“基本 URL”是 not 与服务器/主机路径相同)。

有没有办法找到当前网页的基本 URL,即使对于不使用 标记但在页面中包含的链接中使用相对 URL 的页面也是如此?

注意问题的复杂性:

这可以解释为什么没有单一的 WebView 方法来提供基本 URL...

【问题讨论】:

    标签: android html webview


    【解决方案1】:

    你可以这样做:

    URL url = new URL(mWebView.getUrl());
    

    使用URL 对象,您可以获取路径、主机等信息。查看docs 了解更多信息。

    【讨论】:

    • getUrl() 并不总是基本 URL。服务器/主机路径并不总是基本 URL。网页并不总是包含<base> 标记。问题比这更复杂...
    • 你可以extract the web source,然后解析出<base>标签。
    【解决方案2】:

    我在同样的问题上苦苦挣扎,但随机找到了解决方案。在方法loadDataWithBaseURL 中,将historyUrl 设置为您的baseUrl。现在,当您请求 webView.getUrl() 时,它总是返回您的 baseUrl

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-12
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多