webview是android比较重要和常用的控件,网络上很多相关内容,在此介绍下webviewclient比较少见的操作:
我们获取webview里面链接别的网页的url地址
private class mywebviewclient extends webviewclient { @override public boolean shouldoverrideurlloading(webview view, string url) { return true; //返回true才能在当前webview显示url链接内容,否则会打开其它浏览器 } @override public void onpagestarted(webview view, string url, bitmap favicon) { super.onpagestarted(view, url, favicon); initcollectionimagebtn(url); //1、 view.getoriginalurl()初始加载为空null,此后该值==view.geturl() != url // 2、并且url等于onpagefinished的值 imgbuttonfresh.setimagedrawable(getresources().getdrawable( r.drawable.selector_nav_to_refresh_stop)); } @override public void onpagefinished(webview view, string url) { // view.getoriginalurl() == view.geturl() == url if (iscollection) { changecollectionimgbg(collection_sate_after); } else { changecollectionimgbg(collection_sate_before); } imgbuttonfresh.setimagedrawable(getresources().getdrawable( r.drawable.selector_nav_to_refresh)); view.loadurl(javascript: + handlewebviewheader(url)); super.onpagefinished(view, url); } @override public void onreceivederror(webview view, int errorcode, string description, string failingurl) { super.onreceivederror(view, errorcode, description, failingurl); } }
以上代码是项目的一个代码片段,url的值参考上面代码,其中onpagefinished()函数中view.loadurl(javascript:+handlewebviewheader(url))是加载经过处理后的html页面,该处是去除header内容:
document.body.removechild(document.getelementsbytagname(\header\)[0]);
或者 document.body.removechild(document.getelementsbyclassname(\header\)[0]);