15_android-WebView的简单实用介绍

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页。

它的实现方式有如下两种:

1.第一种实现步骤

1、在布局文件中声明WebView(activity_main.xml)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

</RelativeLayout>

2、在Activity中实例化WebView(MainActivity)

private WebView webView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 获取控件对象
		webView = (WebView) findViewById(R.id.webView1);
            }


3、调用WebView的loadUrl( )方法,设置WebView要显示的网页

// 设置显示的网页
		webView.loadUrl("http://www.baidu.com");

备注1: 如果访问的页面中有Javascript,则webview必须设置支持Javascript,否则页面也是空白

	       // 获取WebView属性
		WebSettings websettings = webView.getSettings();
		// 设置支持javascript代码
		websettings.setJavaScriptEnabled(true);

备注2:如果需要访问网络需要添加网络访问的权限,否则会出现Web page not available错误

<uses-permission android:name="android.permission.INTERNET"/>

4、为了让WebView能够在当前组件中响应超链接功能,而非新打开android系统中的浏览器响应该链接,必须调用setWebViewClient( )方法,设置  WebView视图

	       // 设置视图
		webView.setWebViewClient(new WebViewClient() {
			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url) {
				// 打开地址
				view.loadUrl(url);
				// 返回的是true,代表在webView控件中打开,否则在系统的浏览器中打开
				return true;
			}
		});
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退键,会调用finish()而结束自身,而不是回退到上一页面

	// 后退的操作实现
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
			Toast.makeText(this, "hohouhouhou", 1).show();
			webView.goBack();
			return true;
		} else {
			return super.onKeyDown(keyCode, event);
		}
	}


如果版本大于2.0也可以直接使用

	// 后退操作  android2.0
	@Override
	public void onBackPressed() {
		Toast.makeText(this, "后退键", 1).show();
		// 判断是否能够回退
		if (webView.canGoBack()) {
			webView.goBack();// 返回
		} else {
			super.onBackPressed();
		}
	}


2.第二种实现步骤

     把第一种实现步骤的1,2两个步骤改成:如下操作

public class MainActivity extends Activity {

	private WebView webView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// 创建控件对象
		webView = new WebView(this);

	      // 设置显示的视图为创建的控件即可
	     setContentView(webView);
}


实现效果如下:

备注:关于WebSettings与WebViewClient常用方法的说明

WebSettings常用方法:

        setAllowFileAccess 启用或禁止WebView访问文件数据
	setBlockNetworkImage 是否显示网络图像
	setBuiltInZoomControls 设置是否支持缩放
	setCacheMode 设置缓冲的模式
	setDefaultFontSize 设置默认的字体大小
	setDefaultTextEncodingName 设置在解码时使用的默认编码
	setFixedFontFamily 设置固定使用的字体
	setJavaSciptEnabled 设置是否支持Javascript
	setLayoutAlgorithm 设置布局方式
	setLightTouchEnabled 设置用鼠标激活被选项
	setSupportZoom 设置是否支持变焦


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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值