15_android-WebView的简单实用介绍

本文介绍如何在Android应用中使用WebView加载网页,包括配置支持JavaScript、处理网络权限、自定义链接打开方式及实现回退功能等。

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中打开还是在系统浏览器中打开



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值