1、WebView是什么? WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页。2、WebView怎么用? @、加载网络地址(比如一个网址http://www.baidu.com) 1.Activity中实例化WebView: WebView mWebView = new WebView(this); 2.调用WebView的loadUrl()方法,设置WevView要显示的网页地址 mWebView.loadUrl("http://www.baidu.com"); @、加载本地地址(比如一个网址file:///test/index.html) 1.mWebView.loadUrl("file:///test/index.html"); 2.注意: 本地文件应该存放在assets 文件中 3、WebView的特殊处理。(与原生交互) @、与原生交互的设置 mWebView.addjavascriptInterface(new WebAppInterface(this), "AndWindow"); public class WebAppInterface { PRivate final IOnWebJavascriptListener listener; //设置监听 public WebAppInterface(IOnWebJavascriptListener listener) { this.listener = listener; } //添加与原生交互的注解JavascriptInterface 进行连接调用的方法 @JavascriptInterface public String isLogin() { return this.listener.isLogin(); } } //接口 用来进行与html5进行交互 public interface IOnWebJavascriptListener { public String isLogin();//是否登录 } @、基本配置信息的处理 WebSettings mSettings = mWebView.getSettings(); mWebView.requestFocusFromTouch();//为需要键盘的的控件,提供获得焦点服务 mSettings.setLoadsImagesAutomatically(true);// 设置可以自动加载图片 mSettings.setAllowFileaccess(true);// 可以读取文件缓存(manifest生效) mSettings.setJavaScriptCanOpenWindowsAutomatically(true); //设置后代表支持Flash插件,适配4.2.2,4.3以后才主动支持,之前要加上 mSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); //适配4.2.2 设置后才有视频图像展示 @、重要的配置信息(感觉比较重要的配置) WebViewClient mClient = new MyWebViewClient(); mWebView.setWebViewClient(mClient); private class MyWebViewClient extends WebViewClient { //加载资源 @Override public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } //加载网络或者本地网页之前做的事情 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } //允许重写事件的响应 @Override public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) { return super.shouldOverrideKeyEvent(view, event); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { String mUrl = url.replace("/", ""); String[] params = mUrl.split(":"); if (params[1].equals("login")) { login(); //该方法是webActivity 实现 IOnWebJavascriptListener 的时候复写的 } //hitTestResult==null解决重定向问题 WebView.HitTestResult hitTestResult = view.getHitTestResult(); if (!TextUtils.isEmpty(url) && hitTestResult == null) { view.loadUrl(url); return true; } return super.shouldOverrideUrlLoading(view, url); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url);//网页加载完毕时调用的方法 } class myWebChromeCilent extends WebChromeClient { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); //该方法用来获取html5网页的标题 } } long firstTime = 0;//进来时间为0 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { //处理返回键的操作 if (keyCode == KeyEvent.KEYCODE_BACK) { long secondTime = System.currentTimeMillis(); if (secondTime - firstTime > 2000) { //如果两次按键时间间隔大于2秒 firstTime = secondTime;//更新firstTime return true; } else { //两次按键小于2秒时,退出Activity setResult(RESULT_OK); finish(); } // 执行速度过快,要判断时候为空 if (mWebView != null && mWebView.canGoBack()) { isGoBack = true; mWebView.goBack(); } else { finsh();//销毁自身 } return true; } }下载地址:http://download.csdn.net/detail/gl_mine_csdn/9765397 点击打开链接
新闻热点
疑难解答