Webview获取H5页面的title,并解决回退时title不变的问题
Webview内嵌H5页面,获取H5页面的title,不及时
表现:1,ios只抓取第一个页面的title;2,安卓页面返回或实时修改不生效问题
问题分析:
- 原因是在IOS webview中网页标题只加载一次,动态改变是无效的;
- 安卓只在页面完成生命周期抓取title;在 new WebChromeClient() 里 重写 onReceivedTitle 方法 拿到 title
- 当 goback 返回之后, title 并没有自动的变回去,还是上一个页面的 title,这时我们可以采用第二种方法来获取
- 在 new WebViewClient() 里 重写 onPageFinished方法 拿到 title
解决方法:安卓需要在资源加载时获取title,有下面的方法完美解决。
// 解决ios title不更新问题
export function changeTitle (title) {
document.title = title
let i = document.createElement('iframe')
i.style.display = 'none'
i.src = './favicon.ico' // 加载当前页面下一个体积小的资源,比如favicon.ico
i.onload = () => {
setTimeout(() => {
i.remove()
}, 0)
}
document.body.appendChild(i)
}

浙公网安备 33010602011771号