使用WebView显示网页
2015-09-11 20:38
309 查看
使用WebView显示网页
WebView本身就是一个浏览器实现,其内核是基于Webkit 引擎,,如若甲乙美化可以开发自己的浏览器常用方法
void goBack()后退void goForward()前进
void loadUrl(String url)加载指定url对应网页
boolean zoomIn()放大网页
boolean zoomOut()缩小网页
获取网络状态
//loadUrl(String url)方法:加载指定URL对应的网页 webView.loadUrl("http://www.baidu.com"); } /** * @param v */ @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: NetworkInfo info = connectivityManager.getActiveNetworkInfo(); if (info != null && info.isConnected()) { textViewDetail.setText("连接方式为:" + info.getTypeName()); } else { textViewDetail.setText("无网络连接"); } break; default: break; } }
设置网页缩放等功能
//设置WebView的一些缩放功能点 webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webView.getSettings().setSupportZoom(true); //设置WebView可触摸放大缩小 webView.getSettings().setBuiltInZoomControls(true); webView.setInitialScale(70); webView.setHorizontalScrollbarOverlay(true); //WebView双击变大,再双击后变小,当手动放大后,双击可以恢复到原始大小 webView.getSettings().setUseWideViewPort(true); //提高渲染的优先级 //webView.getSettings().setRenderPriority(RenderPriority.HIGH); //允许JS执行 webView.getSettings().setJavaScriptEnabled(true);
设置进度条显示网页加载速度
首先在XML文件中设置为不可见<ProgressBar android:id="@+id/progressbar" android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal" android:visibility="invisible"/>
然后在代码中实现两个方法
webView.setWebViewClient(new WebViewClient() { //设置开始进度条显示 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); progressBar.setVisibility(View.VISIBLE); } //设置结束后进度条不可见 @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); progressBar.setVisibility(View.INVISIBLE); }
自定义没网状态的页面
首先看一下默认界面//自定义没网状态的页面 @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); webView.setVisibility(View.GONE); textViewDetail.setText("加载失败"); textViewDetail.setVisibility(View.VISIBLE); } }); 设置后可以通过textView 显示文字提示信息
解决页面覆盖问题,通过返回键回到上一界面
/** * @param keyCode KEYCODE_BACK * @param event KEYCODE_BACK * @return */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (webView.canGoBack()) { webView.goBack(); return true; } else { finish(); } } return super.onKeyDown(keyCode, event); } }
相关文章推荐
- Android数据存储之SQLite的操作
- AndroidManifest.xml文件详解(supports-screens)
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- iOS 字符串NSString 的一些常用方法
- Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)
- <Chapter 2>2-2.开发应用(developing the Application)
- 安卓基本控件之TextView
- 微信开发学习
- Android连接服务器,从服务器获取数据,以及从服务器下载文件(单,多线程)
- iOS webView图片自适应屏幕宽度
- 【cocos2d-x官方文档】怎么使用pthread
- 安装NAGIOS
- iOS 导航条背景透明
- Titanium快速开发app
- Magazine App Demo
- In-App Purchase
- swift的mac app开发
- app开发平台-应用之星app制作教程
- 企业移动营销少不了APP
- 成都app开发,手机APP软件定制开发公司