Android:WebView基础
2016-04-04 17:00
351 查看
Android WebView作为一种网络视图,能够加载并显示网页,可以视为一个浏览器,它使用Webkit渲染引擎,很多APP都内置了该组件用来显示web页面。
使用webview组件,首先需要在布局文件中定义:
因为要访问网络,故还需要添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
然后在Activity中获取WebView组件的引用,并加载初始页面:
为了防止在webview视图中打开网页时使用系统浏览器,还需要重写WebViewClient中的方法:
并且利用setWebViewClient( )方法,设置WebView视图:
为了让WebView支持回退功能,查看历史页面,需要覆盖覆盖Activity类的onKeyDown()方法:
此外,还需要设置webview支持自适应手机屏幕,且能够放大或者缩小:
使用webview组件,首先需要在布局文件中定义:
<WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" />
因为要访问网络,故还需要添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
然后在Activity中获取WebView组件的引用,并加载初始页面:
webview = (WebView)findViewById(R.id.webview); webview.loadUrl(url);
为了防止在webview视图中打开网页时使用系统浏览器,还需要重写WebViewClient中的方法:
private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }
并且利用setWebViewClient( )方法,设置WebView视图:
webview.setWebViewClient(new MyWebViewClient());
为了让WebView支持回退功能,查看历史页面,需要覆盖覆盖Activity类的onKeyDown()方法:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { //检查是否按下返回按键,并且是否存在历史页面 if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true; } // 如果没有按下返回按键,或者没有历史页面,执行系统默认行为 return super.onKeyDown(keyCode, event); }
此外,还需要设置webview支持自适应手机屏幕,且能够放大或者缩小:
WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); //设置页面自适应手机屏幕 webSettings.setSupportZoom(true); webSettings.setBuiltInZoomControls(true); webSettings.setUseWideViewPort(true); webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); webSettings.setLoadWithOverviewMode(true); webSettings.setDisplayZoomControls(false);
相关文章推荐
- Android发展历程
- 码农小汪-Hibernate学习8-hibernate关联关系注解表示@OneToMany mappedBy @ManyToMany @JoinTable
- Android基础部分再学习---activity的生命周期
- adb的常用命令(android debud bridge)
- Android中Gson解析json数据使用@SerializedName注解与java对象不匹配的字段
- IOS- SDWebImage的作用
- ios 总结
- 序列化机制
- iOS 简单动画 序列帧动画
- 自定义的一个App搜索框
- java微信开发API解析(二)-获取消息和回复消息
- Unity3d push调查
- iOS 简单动画 block动画
- 安卓绘制视图的流程
- Android Studio 统计项目的代码总行数
- 如何快速看懂一个Android项目
- 详解实现Android中实现View滑动的几种方式
- [Android] Android使用序列化接口Parcelable、Serializable
- IOS开发之格式化日期时间的使用 && 编程中常见问题
- iOS之文件断点下载