getTitle()使用web URL,而不是webView.getTitle();

时间:2014-02-15 10:43:05

标签: android url android-webview

我想在webView中获取网页的标题,我不能只调用webView.getTitle();,因为即使在onPageStarted() WebView尚未收到标题。但是我已经拥有了正在加载的网页的网址,所以如果像getTitle(url);这样的话就是我想要的那样。

2 个答案:

答案 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();
            }                    



  }});