(三) Android Webview 深入 (中)

建立在对webView控件有了一定的认识和了解之后,我们就可以继续研究一下这个控件了,这篇文章主要介绍一下如何使webView与ProgressDialog结合。

WebView 组件支持直接加载网页,可以将其视为一个浏览器,要实现该功能,具体步骤如下:

1.新建xml布局文件,如下:

<span style="font-size:18px;"><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" >

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout></span>

2.在主Activity中对控件进行初始化和设置相应的参数

<span style="font-size:18px;">package com.happy.wbpd;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MainActivity extends Activity {

	private WebView webView;
	private AlertDialog alertDialog;
	private ProgressDialog progressBar;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initWebView();
	}

	/**
	 * 初始化webView
	 */
	private void initWebView() {
		webView = (WebView) this.findViewById(R.id.webView);
		progressBar = ProgressDialog.show(MainActivity.this, null,
				"正在进入网页,请稍后...");
		webView.getSettings().setJavaScriptEnabled(true);
		webView.loadUrl("http://www.baidu.com/");
		alertDialog = new AlertDialog.Builder(MainActivity.this).create();
		webView.setWebViewClient(new WebViewClient() {

			@Override
			public void onPageFinished(WebView view, String url) {
				if (progressBar.isShowing()) {
					progressBar.dismiss();
				}
			}

			@Override
			public void onReceivedError(WebView view, int errorCode,
					String description, String failingUrl) {
				Toast.makeText(MainActivity.this, "网页加载出错!", Toast.LENGTH_LONG);
				alertDialog.setTitle("ERROR");
				alertDialog.setMessage(description);
				alertDialog.setButton("OK",
						new DialogInterface.OnClickListener() {
							@Override
							public void onClick(DialogInterface dialog,
									int which) {

							}
						});
				alertDialog.show();
			}

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

		});
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
			webView.goBack();
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}
}</span>

3.在需要在AndroidManifest.xml 中添加访问互联网的权限,否则不能显示:

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

该逻辑比较简单,外加今天比较忙,所以就大体介绍一下,下篇文章会说一下webView与javaScript的互相调用以及listView加入webView实现下拉刷新。

时间: 2024-11-06 10:56:07

(三) Android Webview 深入 (中)的相关文章

Android WebView 开发具体解释(三)

转载请注明出处   http://blog.csdn.net/typename/article/details/40302351 powered by miechal zhao 概览 Android WebView提供展示网页,也提供我们应用程序对网页载入的一些定制,比方我们为了降低网络数据能够设置当前载入的页面不能显示图片,假设是pc网址在pad上訪问我们能够提供用户一种概览模式的浏览方式,能够提供放大网页字体等定制功能. Android 提供管理WebView的一些setting的类WebS

Android WebView 开发详解(三)

转载请注明出处   http://blog.csdn.net/typename/article/details/40302351 powered by miechal zhao 概览 Android WebView提供展示网页,也提供我们应用程序对网页加载的一些定制,比如我们为了减少网络数据可以设置当前加载的页面不能显示图片,如果是pc网址在pad上访问我们可以提供用户一种概览模式的浏览方式,可以提供放大网页字体等定制功能.Android 提供管理WebView的一些setting的类WebSe

Android:WebView中对图片注册上下文菜单

前言 今天一朋友问我一个问题,就是如何在WebView控件中的图片增加上下文菜单,以便增加保存图片等功能.今天就给他简单做了一个演示Demo,现写下来,给有相同问题的朋友提供些许思路吧. 概要实现 其实这个功能很简单,没有太复杂的东西,就是对WebView的控件的使用,一是给WebView注册了上下文菜单事件,二是在响应事件中去判断事件源的类型,如果是图片类型,则把url取出来 注册上下文菜单事件 这个就比较简单了通过下面的代码即可完成. WebView vw = (WebView) findV

Android WebView中那些不得不解决的坑~~

前面那张hybrid开发心得 有人问 怎么解决不用onJsPrompt 来回调js函数的问题.其实很简单,就是在在你的jscalljava回调函数内 另外开个线程去load js代码即可: 1 wb.post(new Runnable() { 2 @Override 3 public void run() { 4 wb.loadUrl("javascript:display_alert()"); 5 } 6 }); 好,然后开始说一下webview.webview其实我一直都很痛恨这个

[Android]Webview中JS接口调用Java-版本问题

问题: The javascript to java bridge on 2.3 Gingerbread is causing crashes. This is 100% reproducible using the WebViewDemo application from here: http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/Samples/WebViewDemo. Note: The project

Android 4.4 中 WebView 使用注意事项

Android 4.4 中 WebView 使用注意事项 自Android 4.4起,Android中的WebView开始基于Chromium( 这大概是因为Android部门负责人从Andy Rubin变成了Chrome部门的主管Sundar Pichai了吧,_). 这个改变,使得WebView的性能大幅度提升,并且对HTML5, CSS3, and JavaScript有了更好的支持. 那么,作为一个客户端开发者,我们写代码的时候需要注意哪些呢? 1.多线程 如果你在子线程中调用WebVi

Android Webview与Html5交互

转:http://fangjie.info/?p=417#more-417   一.WebView.setWebViewClient(new MyWebViewClient()); 1.public boolean shouldOverrideUrlLoading(WebView view, String url) { onWebPageShouldLoad(view, url); //通过 return true; } 在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接

Android WebView学习

Android WebView学习 权限: <uses-permission android:name=“android.permission.INTERNET” /> 在WebView中使用JavaScript WebView myWebView = (WebView) findViewById(R.id.webview);WebSettings webSettings = myWebView.getSettings();webSettings.setJavaScriptEnabled(tr

android webview远程调试

H5的调试的方式一般用chrome的emulator就好,可是遇到APP就拙计了.这时候还得用远程调试,远程调试很给力,不过目前网上还没有好的文章讲解,要好好的把其配置下来还是非常有难度的,今天折腾了半天,终于弄好,分享一下 配置需求 话说其配置也是非常有考究的,和ios开发一样,都是有门槛的货,告诉大家屌丝误入,不过这个条件作为屌丝的我也算是打了擦边球,唯一要求就是android系统要4.0以上才支持 app代码 如果需要调试那么,代码中一定要先在,apk生成前的开发包中的manifest.x