我想在webView中获取网页的标题,我不能只调用webView.getTitle();
,因为即使在onPageStarted()
WebView
尚未收到标题。但是我已经拥有了正在加载的网页的网址,所以如果像getTitle(url);
这样的话就是我想要的那样。
答案 0 :(得分:1)
只需使用该网址,您就必须通过网络加载文档,解析文档,然后获取您可能不想自己做的标题。
我认为您实际需要的是:为您的WebView设置自定义 WebViewClient ,并为此实施 onPageFinished()
;传递给该方法的WebView实例具有标题集。 This answer有一个完整的例子。
答案 1 :(得分:1)
它不是最好的方式,但它有效(大约快70%):
web.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
if(progress > 30 && progress < 41){
// using boolean:lock to call this method once everytime
if(!lock){
// get the Title by web.getTitle();
lock = true;
}
}
if(progress > 40){ lock = false; }
}});
或另一种方式(甚至更快):
web.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
if(OldPageTitle != web.getTitle()){//getTitle has the newer Title
// get the Title
OldPagerTitle = web.getTitle();
}
}});