场景
Android 的 webview 中加载一个 SPA (单页面应用)网站
过程
我通过 shouldoverrideurl 方法来监听 Webview 的 URL,对 URL 进行某些预处理
但是,SPA 中大部分是 hash 值变化,因此这个方法就监听不到变化
举例
从 a.html#/home
跳转到 a.html#/other
问题
请问有什么办法监听 hash 值的变化吗?
Android 的 webview 中加载一个 SPA (单页面应用)网站
我通过 shouldoverrideurl 方法来监听 Webview 的 URL,对 URL 进行某些预处理
但是,SPA 中大部分是 hash 值变化,因此这个方法就监听不到变化
从 a.html#/home
跳转到 a.html#/other
请问有什么办法监听 hash 值的变化吗?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
只能通过 HTML5 新增加的
window.onhashchange()
API。shouldoverrideurl
应该监听不到吧。如果你不想修改 js 代码,可以在 java 中注入:
定义一个处理 js 的类:
注入到 webview 中:
监听 onhashchange 事件: