android 关于webview的小小总结

原创 2013年12月02日 16:54:25

小弟新开的淘宝店铺

店铺地址:https://shop172122426.taobao.com/?spm=2013.1.1000126.d21.JdNasm

type-c读卡器: https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-16590727134.4.ojyAeN&id=552870606536

苹果读卡器:    https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-16590727134.6.ojyAeN&id=552915271058


希望大家,多多关照



1.android提供了webView控件专门用来浏览网页。
然后在程序中装载webView控件,设置属性,比如:颜色、字体、要访问的网址等。通过loadUrl方法设置当前webView需要访问的网址。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置。
 

2.下面是设置一些常用属性、状态的方法
WebSettings常用方法:
setAllowFileAccess 启用或禁止WebView访问文件数据
setBlockNetworkImage 是否显示网络图像
setBuiltInZoomControls 设置是否支持缩放
setCacheMode 设置缓冲的模式
setDefaultFontSize 设置默认的字体大小
setDefaultTextEncodingName 设置在解码时使用的默认编码

setDomStorageEnabled(true);// 用来支持百度地图显示
setFixedFontFamily 设置固定使用的字体
setJavaSciptEnabled 设置是否支持Javascript
setLayoutAlgorithm 设置布局方式
setLightTouchEnabled 设置用鼠标激活被选项
setSupportZoom 设置是否支持变焦

WebViewClient常用方法:
doUpdate VisitedHistory 更新历史记录
onFormResubmission 应用程序重新请求网页数据
onLoadResource 加载指定地址提供的资源
onPageFinished 网页加载完毕
onPageStarted 网页开始加载
onReceivedError 报告错误信息
onScaleChanged WebView发生改变
shouldOverrideUrlLoading 控制新的连接在当前WebView中打开

WebChromeClient常用方法:
onCloseWindow 关闭WebView
onCreateWindow 创建WebView
onJsAlert 处理Javascript中的Alert对话框
onJsConfirm处理Javascript中的Confirm对话框
onJsPrompt处理Javascript中的Prompt对话框
onProgressChanged 加载进度条改变
onReceivedlcon 网页图标更改
onReceivedTitle 网页Title更改
onRequestFocus WebView显示焦点
 

3. android webView相关知识
@下面的代码通过loadUrl方法设置当前webView需要访问的网址:
mWebView=(WebView) findViewById(R.id.WebView01);
mWebView.loadUrl(“http://www.sogou.com”);
@在android中专门通过WebSettings来设置WebView的一些属性、状态等。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置:
WebSettings webSettings=mWebView.getSettings();//取得对象
WebSettings和WebView都在同一个生命周期中存在,当WebView被销毁后,如果再使用WebSettings,则会抛出异常。
@使用WebViewClient来完成在应用程序中自定义网页浏览程序:
WebViewClient是辅助WebView处理各种通知、请求等事件的类。通过WebView的setWebViewClient方法指定WebViewClient对象。
WebView可以通过覆盖WebViewClient方法来辅助WebView浏览网页:

public Boolean shouldOverrideUrlLoading
(WebView view,String url){view .loadUrl(url);return true;}


4. android webView实例
实例中使用EditText输入网址,用Button来确认连接,用webView显示网页内容。
这里使用了WebViewClient来辅助WebView处理一些事件,因此我们显示的网页都是在一个WebView控件中。可以通过goBack和goForward方法设置前进和后退,先检查是否可以前进和后退:

if((keyCode==keyEvent.KEYCODE_BACK)&&mWebView.canGoBack())
{
mWebView.goBack()//返回前一个页面
return true;
}                           


5、关于WebViewClient的方法解释
 
设置WebChromeClient子类,WebChromeClient会在一些影响浏览器ui交互动作发生时被调用,比如WebView关闭和隐藏、页面加载进展、js确认框和警告框、js加载前、js操作超时、webView获得焦点等等,详见WebChromeClient


    设置WebViewClient子类,WebViewClient会在一些影响内容喧嚷的动作发生时被调用,比如表单的错误提交需要重新提交、页面开始加载及加载完成、资源加载中、接收到http认证需要处理、页面键盘响应、页面中的url打开处理等等,详见WebViewClient
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url);
       return true;
  }






   在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。
  2)、public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error) {
handler.proceed();
}
重写此方法可以让webview处理https请求。
  3)、public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
            return super.shouldOverrideKeyEvent(view, event);
        }
    }
重写此方法才能够处理在浏览器中的按键事件。
   4、 public void onLoadResource(WebView view, String url) {
            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onLoadResource ");
            }
            super.onLoadResource(view, url);
        }
在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。
5、 public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onPageStarted ");
            }
           if (url.endsWith(".apk")) {
                    download(url);//下载处理
             }
            super.onPageStarted(view, url, favicon);
        }
在页面加载开始时调用。
6、public void onPageFinished(WebView view, String url) {
public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onPageFinished ");
            }
            super.onPageFinished(view, url);
        }




            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onPageFinished ");
            }
            super.onPageFinished(view, url);
        }
在页面加载结束时调用。













                    

相关文章推荐

Android-小小设置永久解决程序因为未捕获异常而异常终止的问题

 (一) 前言 各位亲爱的午饭童鞋,是不是经常因为自己的程序中出现未层捕获的异常导致程序异常终止而痛苦不已?嗯,是的。。 但是,大家不要怕,今天给大家分享一个东东可以解决大家这种困扰,吼吼! ...

android游戏开发之我的小小游戏1——五子棋游戏1之绘制棋子与棋盘

之前写过的技术类博客很少,如果写的不好还请大家见谅!        写博客的目的,一是想把自己做过的一些小的练习记录一下,以便在日后的某一个时间自己回忆起自己前一段时间到底有过什么样的学习经历的时候...

android游戏开发之我的小小游戏2——连连看游戏4连连看算法2

下面是有关有一个拐点以及两个的时候,判断能否连接的办法 当有一个拐点时,有两种连接方式,如图所示: 当有两个拐点的时候,有以下几种情况: 看起来好像很复杂的样子,其实也不简单,呵...

Android初学者 小小笔记

UI Layout     Common Layout   Adapter Layout InputControls   Button   TextFields   CheckedBox  Radio...

Android之小小图片加工厂

有时候我们在项目中,需要把图片加工一下,比如说加个圆角,或者打上马赛克或者水印,虽然不是很难的东西,但是没弄过,还是很纠结的,比如像我这样的小白,现在根据网上一些大牛的一些方法,总结了下面这个图片加工...

Android Fragment的一些小小小tips

为了更好更灵活的布局,Fragment是必不可少的,它与Activity类似,但也有很多区别。 学习一些组件的开始,我们得瞧瞧它的生命周期。Fragment的生命周期看似很复杂,但和Activity比...
  • PlanZ
  • PlanZ
  • 2016年04月23日 22:48
  • 215

小小android程序之控件demo

一般的控件添加都是如下几步:1. 新建一个android项目2. 在androidmanifest.xml文件里注册一个activity(默认已经注册了一个activity)3. 在相应的activi...
  • cs_dota
  • cs_dota
  • 2013年04月12日 00:31
  • 1159

android游戏开发之我的小小游戏2——连连看游戏3连连看算法1

对于连连看重判断能否连接的问题主要考虑三种情况 1、连接时没有拐点,此时又分为横向和纵向 2、连接时有一个拐点的情况 3、连接时有两个拐点的情况,这也是本游戏中最难的部分了 首先我们来...

【java|Android接口回调】小小猿理解的接口回调

【java|Android接口回调】小小猿理解的接口回调    所谓的回调函数就是:在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类...

Android性能优化--小小攻城狮的成长之路

文章出处:http://blog.csdn.net/guolin_blog/article/details/42318689 在前两篇文章当中,我们主要学习了Android内存方面的相关知识,包...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 关于webview的小小总结
举报原因:
原因补充:

(最多只允许输入30个字)