webview在现在的项目中使用的频率应该还是非常高的。
我个人总觉得html5是一种趋势。找了一些东西,在此总结。
本篇最后有一个非常不错 的 html5activity 加载类,不想看的可以直接跳下载。
加载一个网页:
加载apk包中的一个html页面
webview.loadurl("file:///android_asset/test.html");
加载手机本地的一个html页面的方法:
webview.loadurl("content://com.android.htmlfileprovider/sdcard/test.html");
webviewclient就是帮助webview处理各种通知、请求事件的。
打开网页时不调用系统浏览器, 而是在本webview中显示:
webviewclient 方法
将上面定义的webviewclient设置给webview:
webchromeclient是辅助webview处理javascript的对话框,网站图标,网站title,加载进度等 :
方法中的代码都是由android端自己处理。
同样,将上面定义的webchromeclient设置给webview:
上面这是前提!!!
然后实现上面的方法。
android 调用js有个漏洞:
<a target="_blank" href="http://blog.csdn.net/leehong2005/article/details/11808557">http://blog.csdn.net/leehong2005/article/details/11808557</a>
前进、后退
清除缓存数据:
webview的状态:
但是注意:
webview调用destory时,webview仍绑定在activity上.这是由于自定义webview构建时传入了该activity的context对象,因此需要先从父容器中移除webview,然后再销毁webview:
判断webview是否已经滚动到页面底端 或者 顶端:
getscrolly() //方法返回的是当前可见区域的顶端距整个页面顶端的距离,也就是当前内容滚动的距离.
getheight()或者getbottom() //方法都返回当前webview 这个容器的高度
getcontentheight() 返回的是整个html 的高度,但并不等同于当前整个页面的高度,因为webview 有缩放功能, 所以当前整个页面的高度实际上应该是原始html 的高度再乘上缩放比例. 因此,更正后的结果,准确的判断方法应该是:
返回上一次浏览的页面
有一个非常不错的 html5activity 加载类帖出来:
文/wing_li(简书作者)
原文链接:http://www.jianshu.com/p/3fcf8ba18d7f
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。