`
vvv_110
  • 浏览: 144615 次
社区版块
存档分类
最新评论

WebView详解

阅读更多

 

好文章 做下备份

文章出处:http://wenku.baidu.com/view/0ff321bffd0a79563c1e7230.html

 

Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件

WebView
在开发过程中应该注意几点
    1.AndroidManifest.xml
中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
    2.
如果访问的页面中有Javascript,则webview必须设置支持Javascript

    WebSettings webSetting = webview.getSettings();
        webSetting.setJavaScriptEnabled(true); 

    3.
如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webviewWebViewClient对象。

mWebView.setWebViewClient(new WebViewClient(){       
        public boolean shouldOverrideUrlLoading(WebView view, String url) {       
                        view.loadUrl(url);       
                        return true;       
        }       
});   
 

 4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。

public boolean onKeyDown(int keyCode, KeyEvent event) {       
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {       
            mWebView.goBack();       
                   return true;       
        }       
        return super.onKeyDown(keyCode, event);       
    }
 

 5.如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。

webview.requestFocusFromTouch();

 6.WebView 加载界面主要调用三个方法:LoadUrlLoadDataLoadDataWithBaseURL.
  1LoadUrl            直接加载网页、图片并显示.(本地或是网络上的网页、图片、gif
  2LoadData           显示文字与图片内容 (模拟器1.51.6
  3LoadDataWithBase  显示文字与图片内容(支持多个模拟器版本)

WebSettings 的常用方法介绍

	setJavaScriptEnabled(true);
     //支持js脚步
	setPluginsEnabled(true);
     //支持插件
	setUseWideViewPort(false);
    //将图片调整到适合webview的大小
	setSupportZoom(true);
    //支持缩放
	setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
  //支持内容从新布局 
	supportMultipleWindows();
   //多窗口
	setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
   //关闭webview中缓存
	setAllowFileAccess(true);
   //设置可以访问文件
	setNeedInitialFocus(true);
   //当webview调用requestFocus时为webview设置节点
webSettings.setBuiltInZoomControls(true);
   //设置支持缩放
	setJavaScriptCanOpenWindowsAutomatically(true);
 //支持通过JS打开新窗口

	setLoadsImagesAutomatically(true);
 //支持自动加载图片
 

WebViewClient 的方法全解

doUpdateVisitedHistory(WebView view, String url, boolean isReload) 
    (更新历史记录)
onFormResubmission(WebView view, Message dontResend, Message resend)
    (应用程序重新请求网页数据)
onLoadResource(WebView view, String url)
  在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。
onPageStarted(WebView view, String url, Bitmap favicon)
      这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告
   诉用户程序在等待网络响应。
onPageFinished(WebView view, String url)
      在页面加载结束时调用。同样道理,我们知道一个页面载入完成,于是我们可以关
  闭loading 条,切换程序动作。
onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
  (报告错误信息)
onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, 
  String realm)(获取返回信息授权请求)

onReceivedSslError(WebView view, SslErrorHandler handler, SslError error)
  重写此方法可以让webview处理https请求。
onScaleChanged(WebView view, float oldScale, float newScale) 
   (WebView发生改变时调用)
onUnhandledKeyEvent(WebView view, KeyEvent event)
 (Key事件未被加载时调用)
shouldOverrideKeyEvent(WebView view, KeyEvent event)
  重写此方法才能够处理在浏览器中的按键事件。
shouldOverrideUrlLoading(WebView view, String url)

        在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。
 
分享到:
评论

相关推荐

    WebView详解案例加注释全套

    【WebView详解】是Android开发中的一个重要知识点,它允许在应用程序中内嵌网页浏览功能,无需启动浏览器即可展示网页内容。这个“WebView详解案例加注释全套”提供了丰富的示例和详细的注释,帮助开发者深入理解和...

    Android开发之常用框架WebView详解代码。超详细,送给初学者,完全掌握此控件

    Android开发之常用框架WebView详解代码。超详细,送给初学者,完全掌握此控件,博文介绍:http://blog.csdn.net/qq_21376985/article/details/51703282

    webview详解和实例

    5. **WebView实例详解** - 加载本地HTML:可以使用`file:///android_asset/`前缀加载assets目录下的HTML文件。 - 下载功能:实现WebView点击链接下载文件,需监听`shouldInterceptRequest()`,并自定义下载逻辑。 ...

    史上最全WebView详解

    阐述WebKit详细讲解webView原理及应用,具体实例说明webView各种用法

    Android WebView详解和调用JS,androidrom开发书籍(csdn)————程序.pdf

    在Android应用开发中,WebView是一个重要的组件,它允许开发者在应用程序内部展示网页内容。这篇文档主要探讨了如何详细地使用Android WebView以及如何调用JavaScript,这对于Android ROM开发至关重要。以下是对这些...

    Android WebView 详解及简单实例

    WebView基本使用 WebView是View的一个子类,可以让你在activity中显示网页 可以在布局文件中写入WebView:比如下面这个写了一个填满整个屏幕的WebView: <?xml version=1.0 encoding=utf-8?> <WebView ...

    webView详解 Demo

    WebView是Android系统中一个非常重要的组件,用于在应用程序内部展示网页内容。它允许开发者在App内集成网页浏览功能,而无需离开应用。本Demo将详细讲解WebView的使用方法及其核心特性,帮助开发者深入理解并熟练...

    Android studio点击跳转WebView详解

    Android studio点击跳转WebView详解 Android studio点击跳转WebView是Android开发中一个常见的功能,主要用于在Android应用程序中跳转到WebView页面,显示网页内容。下面将详细介绍Android studio点击跳转WebView的...

    Android WebView 缓存详解

    Android WebView 缓存详解 一. 两种缓存类型: 页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器 的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地...

    使用腾讯的X5WebView

    **X5WebView详解** X5WebView,全称为QQ X5内核浏览器,是腾讯公司推出的一款基于WebKit技术的高性能、跨平台的Web渲染引擎。它主要用于Android应用中,为开发者提供了一个高效、稳定且功能丰富的网页浏览解决方案...

    WebView示例源码

    **WebView详解** WebView是Android平台中的一个重要组件,它允许开发者在应用程序中嵌入网页内容,让用户无需离开应用就能浏览网页。这个组件对于开发混合型应用或者实现轻量级的网络功能非常有用。在这个"WebView...

    Android_WebView实例详解

    Android WebView 实例详解 Android WebView 是 Android 平台中一种特殊的组件,可以在应用程序中显示 web 页面。它基于 WebKit 内核浏览器,提供了一个可以在 Android 应用程序中嵌入网页浏览器的解决方案。 一、...

    Android WebView与JS交互全面详解(小结)

    Android WebView与JS交互全面详解 Android WebView与JS交互是Android客户端与Web网页交互的关键技术之一。本篇文章将从Android WebView与JS交互的基本概念开始,详细介绍Android WebView与JS交互的各种方式、方法和...

Global site tag (gtag.js) - Google Analytics