您的位置:首页 > 移动开发

【安卓笔记】WebView控件使用

2014-02-22 10:37 351 查看
在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打印的日志:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: