Android开发笔记之如何正确获取WebView的网页Title
2018-09-23 10:23
1306 查看
现在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加载html5介绍
- Android中实现Webview顶部带进度条的方法
- android中webview控件和javascript交互实例
- Android WebView使用方法详解 附js交互调用方法
- android webview中使用Java调用JavaScript方法并获取返回值
- 在Android系统中使用WebViewClient处理跳转URL的方法
- Android中Webview打开网页的同时发送HTTP头信息方法
- Android开发之WebView组件的使用解析
- 解析Android中webview和js之间的交互
- Android中 webView调用JS出错的解决办法
相关文章推荐
- Android开发如何正确使用WebView
- Android WebView中获取网页的title (包括调用goback)
- ANDROID获取WEBVIEW中网页的TITLE(标题)信息
- Android WebView中获取网页的title
- Android WebView中获取网页的title (包括调用goback)
- Android WebView 获取页面 Title 的正确姿势
- Android开发如何正确使用WebView
- Android Webview获取所加载网页的Title
- Android WebView 获取网页数据(html)
- Android: 在WebView中获取网页源码
- Android 从WebView缓存中获取网页图片
- Android WebView获取网页中JavaScript弹框内容
- Android开发学习笔记:浅谈WebView
- Android: 在WebView中获取网页源码
- 【Android】Android WebView 网页输入框获取焦点
- Android开发学习笔记:浅谈WebView
- Android开发学习笔记WebView
- [android开发]WebView如何获得正在打开页面的进度?
- Android WebView如何隐藏地址栏,用WebView 来显示网页内容
- 在android中举例说明如何用WebView.loadUri();来打开网页