Android开发中怎样正确获取WebView的网页Title
这篇文章将为大家详细讲解有关Android开发中怎样正确获取WebView的网页Title,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都网站建设哪家好,找成都创新互联!专注于网页设计、成都网站建设、微信开发、成都小程序开发、集团成都企业网站建设等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:广告制作等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称赞!
前言
现在APP中用到H5页面的越来越多,而如何正确获取WebView的网页title是必须要考虑的。
最近做项目的时候,老大让我把之前做的webview打开网页的功能修改一下,说是要动态的获取网页的标题,然后显示在我们自己app的标题栏上,然后我就屁颠屁颠的跑去看webview的源码,看看有没有获取标题这个方法。
网上能查的大部分方法都是在WebChromeClient的onReceivedTitle(WebView view, String title)
中拿到title。但是这个方法在网页回退时是无法拿到正确的上一级标题的,网上的处理方法是自己维护一个List去缓存标题,在执行完webView.goBack()
后,移除List的最后一条,再将新的最后一条设置给标题栏。
这个方法当然是可行的,但是自己缓存时缓存时机和移除时机都不好确定,onReceivedTitle方法在一个页面打开时并不是仅调用一次,而是多次调用,前面拿到的title都为空。
这里采用原生的WebBackForwardList获取,详见代码。
webView.setWebChromeClient(new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { getWebTitle(); } }); private void getWebTitle(){ WebBackForwardList forwardList = webView.copyBackForwardList(); WebHistoryItem item = forwardList.getCurrentItem(); if (item != null) { setActionBarTitle(item.getTitle()); } } private void onWebViewGoBack(){ webView.goBack(); getWebTitle(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (webView.canGoBack()) { onWebViewGoBack(); return false; } return super.onKeyDown(keyCode, event); }
关于“Android开发中怎样正确获取WebView的网页Title”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
本文题目:Android开发中怎样正确获取WebView的网页Title
文章分享:http://pwwzsj.com/article/gpssss.html