WebView:如何找到当前页面的基本URL?

3

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

是否有一种方法可以查找当前网页的基本URL,即使对于不使用标记但在页面中包含相对URL链接的页面也是如此?

请注意问题的复杂性:

这就可能解释了为什么没有单个WebView方法提供基本URL……

2个回答

6

您可以做以下事情:

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

使用URL对象,您可以获取路径、主机等内容。查看文档以获取更多信息。

getUrl() 并不总是基本 URL。服务器/主机路径也不总是基本 URL。网页并不总是包含 <base> 标签。这个问题比这更复杂... - ateiob
你可以提取网页源代码,然后解析<base>标签。 - Phil

1

我曾经遇到同样的问题,但是偶然间找到了解决方法。在loadDataWithBaseURL方法中,将historyUrl设置为您的baseUrl。现在当您请求webView.getUrl()时,它总是返回您的baseUrl


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接