当前位置: 移动技术网 > IT编程>移动开发>Android > Android开发笔记之如何正确获取WebView的网页Title

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

2019年08月02日  | 移动技术网IT编程  | 我要评论

中国网吧联盟,白加黑说明书,5楼掉下棉被接住

前言

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对移动技术网的支持。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网