欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android开发笔记之如何正确获取WebView的网页Title

时间:2021-05-19 09:41:03|栏目:Android代码|点击:

前言

现在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);
}

总结

上一篇:详解Glide4.0集成及使用注意事项

栏    目:Android代码

下一篇:Android实现QQ手机管家悬浮小火箭效果

本文标题:Android开发笔记之如何正确获取WebView的网页Title

本文地址:http://www.codeinn.net/misctech/124508.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有