【Android WebView】 利用webview实现浏览器的基本功能
2014-09-01 09:35
771 查看
一个简单的浏览器:加载URL,管理书签,记录已经打开的窗口,上/下/首页。
1,加载url。
a,如果Url为:http://www.baidu.com或者https://github.com类似样式的。那么直接load(url);
b,如果Url为:www.baidu.com。就load("http://"+ url);
c,如果地址栏中输入的为关键词,如“北京 旅游”。那么我们可以使用百度的搜索,跳到百度的搜索结果页:load("http://www.baidu.com/s?wd="+keyWord);
2,书签管理:遇到的主要问题是书签的数据持久化。
具体解决办法,我使用sp存储一个书签list解决的。
sp存储复杂数据类型,详见:http://www.cnblogs.com/outOfview/p/3467248.html
3,记录多窗口
像书签一样使用list存储。需要注意的是,对应窗口list的item的各个属性的变换,及记录。
4,上/下/首页
使用webClint中的goBack/goForward。
webView.setWebViewClient(new WebViewClient());
//自定义client集成实现WebviewClient。最基本的方法:shouldOverrideUrlloading(WebView view,String url).
//webviewclient的该方法实现了让url在自定义的Webview中打开,而不是调用自身的浏览器。
webView.goBack();
webView.goForward();
Tips:1,返回键事件处理;
2,历史窗口,书签都要获得当前页面的title和url,这时用到WebChromeClient.
webView.setWebChromeClient(new WebChromeClient());//自定义一个chromeClient。
//使用OnReciveTitle,OnReciveIcon,OnProgressChanged 获取当前页面的标题,图标和加载进度
3,webviewclient的其他重要方法:
(1)doUpdateVisitedHistory(WebView view, String url, boolean isReload); //更新历史记录
(2)onFormResubmission(WebView view, Message dontResend, Message resend); //重新请求网页数据
(3)onLoadResource(WebView view, String url); //加载指定网址提供的资源
(4)onPageFinished(WebView view, String url); //网页加载完毕
(5)onPageStarted(WebView view, String url, Bitmap favicon); //网页开始加载
(6)onReceivedError(WebView view, int errorCode, String description, String failingUrl); //报告错误信息
4,WebSettings提供的一些常用的设置WebView的属性和状态的方法如下:
(1)setAllowFileAccess(boolean allow); //设置启用或禁止访问文件数据
(2)setBuiltInZoomControls(boolean enabled); //设置是否支持缩放
(3)setDefaultFontSize(int size); //设置默认的字体大小
(4)setJavaScriptEnabled(boolean flag); //设置是否支持JavaScript
(5)setSupportZoom(boolean support); //设置是否支持变焦
5,实验发现,Webview和iewFlipper联用,会出现手势无法识别的现象。而ViewPager则能很好的解决Webview界面和其他自定义界面自由切换的效果。
6,浏览器中如果需要侧滑的抽屉,建议使用SlidingMenu。https://github.com/jfeinstein10/SlidingMenu
鸣谢:http://www.cnblogs.com/menlsh/p/3139498.html
1,加载url。
a,如果Url为:http://www.baidu.com或者https://github.com类似样式的。那么直接load(url);
b,如果Url为:www.baidu.com。就load("http://"+ url);
c,如果地址栏中输入的为关键词,如“北京 旅游”。那么我们可以使用百度的搜索,跳到百度的搜索结果页:load("http://www.baidu.com/s?wd="+keyWord);
2,书签管理:遇到的主要问题是书签的数据持久化。
具体解决办法,我使用sp存储一个书签list解决的。
sp存储复杂数据类型,详见:http://www.cnblogs.com/outOfview/p/3467248.html
3,记录多窗口
像书签一样使用list存储。需要注意的是,对应窗口list的item的各个属性的变换,及记录。
4,上/下/首页
使用webClint中的goBack/goForward。
webView.setWebViewClient(new WebViewClient());
//自定义client集成实现WebviewClient。最基本的方法:shouldOverrideUrlloading(WebView view,String url).
//webviewclient的该方法实现了让url在自定义的Webview中打开,而不是调用自身的浏览器。
webView.goBack();
webView.goForward();
Tips:1,返回键事件处理;
2,历史窗口,书签都要获得当前页面的title和url,这时用到WebChromeClient.
webView.setWebChromeClient(new WebChromeClient());//自定义一个chromeClient。
//使用OnReciveTitle,OnReciveIcon,OnProgressChanged 获取当前页面的标题,图标和加载进度
3,webviewclient的其他重要方法:
(1)doUpdateVisitedHistory(WebView view, String url, boolean isReload); //更新历史记录
(2)onFormResubmission(WebView view, Message dontResend, Message resend); //重新请求网页数据
(3)onLoadResource(WebView view, String url); //加载指定网址提供的资源
(4)onPageFinished(WebView view, String url); //网页加载完毕
(5)onPageStarted(WebView view, String url, Bitmap favicon); //网页开始加载
(6)onReceivedError(WebView view, int errorCode, String description, String failingUrl); //报告错误信息
4,WebSettings提供的一些常用的设置WebView的属性和状态的方法如下:
(1)setAllowFileAccess(boolean allow); //设置启用或禁止访问文件数据
(2)setBuiltInZoomControls(boolean enabled); //设置是否支持缩放
(3)setDefaultFontSize(int size); //设置默认的字体大小
(4)setJavaScriptEnabled(boolean flag); //设置是否支持JavaScript
(5)setSupportZoom(boolean support); //设置是否支持变焦
5,实验发现,Webview和iewFlipper联用,会出现手势无法识别的现象。而ViewPager则能很好的解决Webview界面和其他自定义界面自由切换的效果。
6,浏览器中如果需要侧滑的抽屉,建议使用SlidingMenu。https://github.com/jfeinstein10/SlidingMenu
鸣谢:http://www.cnblogs.com/menlsh/p/3139498.html
相关文章推荐
- android 下 利用webview实现浏览器功能
- android利用WebView实现浏览器的封装
- android利用WebView实现浏览器的封装
- 【Android】检测是否处于Wifi环境,利用WebView实现浏览器app
- 【Android】检测是否处于Wifi环境,利用WebView实现浏览器app
- android利用WebView实现浏览器的封装
- Android 利用WebViewJavascriptBridge 实现js和java的交互(一)
- Android Webview实现文件下载功能
- android 腾讯微博分享功能实现及自定义webview认证
- [Android实例] webview 实现翻页功能
- Android 浏览器开发中的小技巧,webview的复制功能
- Android WebView实现离线加载功能
- Android程序:简易浏览器的实现(WebView)
- Android:WebView带划屏手势的浏览器实现
- android开发中WebView控件的实例与注意要点——个人主页浏览器简易实现
- android利用ViewPager实现左右滑动功能
- android 腾讯微博分享功能实现及自定义webview认证
- 利用CMHTMLView实现webview基础功能,同时获取点击图片链接的功能
- Android控件WebView(浏览器)常用功能(图片、缩放)例子介绍
- Android 利用WebViewJavascriptBridge 实现js和java的交互(一)