控件WebView的使用
2015-09-07 17:51
387 查看
1、概述
Android WebView在Android平台上是一个特殊的View,他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的网页,还可以用来开发浏览器。WebView内部实现是采用渲染引擎来展示view的内容,提供网页前进后退,网页放大,缩小,搜索。在Android 4.3系统及其一下WebView内部采用Webkit渲染引擎,在Android 4.4采用chromium 渲染引擎来渲染View的内容。
A View that displays web pages. This class is the basis upon which you can roll your own web browser or simply
display some online content within your Activity. It uses the WebKit rendering engine to display web pages and includes methods to navigate forward and backward through a history, zoom in and out, perform text searches and more.
2、使用
使用时,主要注意两个方法:setWebViewClient: 主要处理解析,渲染网页等浏览器做的事情
setWebChromeClient: 辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
WebViewClient就是帮助WebView处理各种通知、请求事件的。
具体使用:
在AndroidManifest.xml设置访问网络权限:
<span style="font-size:18px;"><uses-permission android:name="android.permission.INTERNET"/></span>
控件:
<span style="font-size:18px;"><WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/webView" /></span>
a.加载本地html资源/web资源,
本地,资源放在assets文件夹下:
webView = (WebView) findViewById(R.id.webView); webView.loadUrl("file:///android_asset/example.html");
网络,
webView = (WebView) findViewById(R.id.webView); webView.loadUrl("http://baidu.com");
b、设置webViewClient
需要重写自己的WebViewClient,通过setWebViewClient关联package com.example.testopen; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test); init(); } private void init(){ webView = (WebView) findViewById(R.id.webView); //WebView加载web资源 webView.loadUrl("http://baidu.com"); //覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开 webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器 view.loadUrl(url);//用对应webView加载对应url内容进行显示 return true; } }); } }
c、设置js相关
如果访问的页面中有Javascript,则webview必须设置支持Javascript//启用支持javascript WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true);
添加js交互:
webView.addJavascriptInterface(new Object() { <span style="white-space:pre"> </span>// 打开照相机 @JavascriptInterface public void openCamera(String path) { pathAll = Tool.getPath(context) + "app_package/" + path; WebTool webTool = WebTool.getInstance(); webTool.openCamera(path, activity); } }, "androidApi");
在java中处理js中的回调方法,使用的是 webView.loadUrl("javascript:locationCallBack()");
其中,locationCallBack()是js的一个方法。
另:
缓存,加载进度设置,见 /article/4795592.htmlwebView回调的详情,参见
http://tool.oschina.net/uploads/apidocs/android/reference/android/webkit/WebView.html
http://blog.csdn.net/typename/article/details/39030091
相关文章推荐
- Appium 服务命令行参数
- Appium 服务命令行参数
- android――SharedPreferences存放数据
- Android SurfaceView 详解(三)
- Android SurfaceView 详解(二)
- Android SurfaceView 详解(一)
- 解决IOS8上无法创建同名删除相册的问题
- quick-cocos2d-x源文件编译及加密详解
- Android Studio Gradle命令详解与导入第三方包
- android选择或点击背景颜色改变效果
- AppleWatch开发初探
- iOS旋屏控制
- IOS Certificates, Identifiers, Devices, Profiles
- Swift 编程语言入门教程
- Android Studio中jar与aar 的生成与aar导入项目方法
- Android中SurfaceView的使用详解
- IOS_OC_字典
- iOS开发笔记之ViewController视图控制器间的跳转
- Android Ubuntu平台下ADB驱动的安装
- 4种必须知道的Android屏幕自适应解决方案