检测webView的最后一次跳转
来源:互联网 发布:北京网络公关公司 编辑:程序博客网 时间:2024/06/06 09:22
简单的看了一遍API,没有发现webView的方法中有检测最后一次跳转的方法,确实也是,这个也确实不好检测。只要自己简单写一个了,也许会有很多的漏洞,不过勉强还是可以使用的。
原理就是重写WebViewClient中的onPageStarted和onPageFinished方法。
每次Finished的时候调用一个线程来监听若干秒之后是否有新的加载,如果没有,则是最后一次跳转。如果有,则在started方法中停止这个线程。
public class LastJumpWebView extends WebView{Timer timer=new Timer();MyTask task;public LastJumpWebView(Context context) {super(context);setWebViewClient(new MyWebViewClient());setWebChromeClient(new WebChromeClient());}class MyWebViewClient extends WebViewClient{@Overridepublic void onPageFinished(WebView view, String url) {task=new MyTask(url);timer.schedule(task, 1000);super.onPageFinished(view, url);}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {if(task!=null){task.cancel();}super.onPageStarted(view, url, favicon);}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// TODO Auto-generated method stubreturn super.shouldOverrideUrlLoading(view, url);}}class MyWebChromeClient extends WebChromeClient{@Overridepublic void onProgressChanged(WebView view, int newProgress) {Log.e("TEST", "进度:"+newProgress);super.onProgressChanged(view, newProgress);}}class MyTask extends TimerTask{String url;public MyTask(String url) {this.url=url;}@Overridepublic void run() {Log.e("TEST", "this is last page, url:"+url);}}}
0 0
- 检测webView的最后一次跳转
- 最后一次的挽救
- bean的最后一次
- webview的页面跳转
- 二月的最后一次blog
- 最后一次的正确配置
- 最后一次支离破碎的善意
- 最后一次的CET考试
- WebView的一次使用笔记
- 更改系统日期格式 检测电脑最后一次输入
- 实现登录时间过期后,下次登录时跳转到上次会话最后一次访问的页面
- 最后一次
- 最后一次
- 最后一次
- 一次曲折的安全检测
- 一次曲折的安全检测
- 一次完整的入侵检测
- 一次监听异常的检测
- 数学之路-群体行为与群体智能(6)
- 考试系统优化——准备工作
- Hibernate笔记:HQL查询总结(二)——条件查询(转)
- C++ map的基本操作和使用
- myeclipse快捷键最新版本
- 检测webView的最后一次跳转
- 石基信息:战略性收购思迅软件,线下支付平台布局完善
- jquery 鼠标滑动显示详情
- hadoop创建两大错误:Bad connection to FS. command aborted. exception和Shutting down NameNode at hadoop
- Directshow 学习入门
- Spring-data-jpa的动态查找案例
- [Android问答] px、dp和sp,这些单位有什么区别?
- ubuntu安装go
- .NET中的静态与非静态的异同