【安卓笔记】WebView控件使用

来源:互联网 发布:手机配件数据网 编辑:程序博客网 时间:2024/06/09 09:08
在Android中,可以使用Webview控件来浏览网页。
下面我们就来介绍webView控件的使用方式:

---------------------------------------------
目录:
1.webview加载url的方式
2.webview的配置
   (1)WebSettings
   (2)WebViewClient
   (3)WebChoromeClient
---------------------------------------------

1.webview加载url的方式
    使用loadUrl方法可以加载本地或者远程的url
    (1)本地资源:
    比如html文件在assets目录下,可以采用这种方式(wv为webView对象):
wv.loadUrl("file:///android_asset/test1.html");
  (2)远程资源:
    直接将地址字符串传入即可。
wv.loadUrl("http://blog.csdn.net");
注意,访问远程资源必须加上权限:
 <uses-permission android:name="android.permission.INTERNET"/>
其实除了loadurl方式,你也可以调用LoadData 或者 loadDataWithBaseURL方法。
2.webView的配置:
(1)WebSettings
WebSettings用来设置WebView的属性和状态。可以通过如下方式获取该对象:
WebSettings webSettings = wv.getSettings();
得到该对象后便可设置一些属性:
    (1)setAllowFileAccess(boolean allow);       //设置启用或禁止访问文件数据  (2)setBuiltInZoomControls(boolean enabled);   //设置是否支持缩放  (3)setDefaultFontSize(int size);            //设置默认的字体大小  (4)setJavaScriptEnabled(boolean flag);       //设置是否支持JavaScript  (5)setSupportZoom(boolean support);       //设置是否支持变焦
(2)WebViewClient
WebViewClient主要用来辅助WebView处理各种通知、请求等事件。
通过setWebViewClient方法设置,提供的方法也有很多,下面列举一部分:
(1)doUpdateVisitedHistory(WebView view, String url, boolean isReload);  //更新历史记录(2)onFormResubmission(WebView view, Message dontResend, Message resend);//重新请求网页数据(3)onLoadResource(WebView view, String url);  //加载指定网址提供的资源(4)onPageFinished(WebView view, String url);      //网页加载完毕(5)onPageStarted(WebView view, String url, Bitmap favicon);  //网页开始加载(6)onReceivedError(WebView view, int errorCode, String description, String failingUrl);  //报告错误信息
(3)WebChoromeClient
WebChromeClient主要用来辅助WebView处理Javascript的对话框、网站图标、网站标题以及网页加载进度等。通过WebView的setWebChromeClient()方法设置。
(1)onProgressChanged(WebView view, int newProgress)//监听网页加载进度(2)onReceivedTitle(WebView view, String title)//监听网页标题(3)onReceivedIcon(WebView view, Bitmap icon)//监听网页图标
小案例:
package com.example.webviewdemo1;import android.app.Activity;import android.graphics.Bitmap;import android.os.Bundle;import android.util.Log;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;public class MainActivity extends Activity{    protected static final String TAG = null;    private WebView wv = null;    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                wv = (WebView) findViewById(R.id.wv);        WebSettings settings = wv.getSettings();        settings.setBuiltInZoomControls(true);//设置是否显示缩放工具        settings.setSupportZoom(true);//设置是否支持缩放        settings.setJavaScriptEnabled(true);        settings.setDefaultFontSize(15);                //加载本地assets目录下的html//        wv.loadUrl("file:///android_asset/test1.html");        //加载远程网页        wv.loadUrl("http://blog.csdn.net");        wv.setWebViewClient(new WebViewClient()        {            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url)            {                //让新打开的网页在当前webview显示                view.loadUrl(url);                return true;            }        });        wv.setWebChromeClient(new WebChromeClient()        {            //获得网页的加载进度(0-100)            @Override            public void onProgressChanged(WebView view, int newProgress)            {                if(newProgress <= 100)                {                    Log.i(TAG,"progress"+newProgress);                }            }            //获得网页的标题            @Override            public void onReceivedTitle(WebView view, String title)            {                Log.i(TAG,"titile="+title);            }            @Override            public void onReceivedIcon(WebView view, Bitmap icon)            {                // TODO Auto-generated method stub                super.onReceivedIcon(view, icon);            }        });            }}
演示效果:



logcat打印的日志:


1 0
原创粉丝点击