`

使用webview加载本地html页面,并处理html页面中的javascript事件

 
阅读更多
[img]

[/img]

[img]

[/img]

WebViewDemo.java
package com.test.activity;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Toast;

import com.test.model.Person;

public class WebViewDemo extends Activity {
	private WebView mWebView;
	private Handler mHandler = new Handler();

	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.webviewdemo);
		mWebView = (WebView) findViewById(R.id.webview);
		WebSettings webSettings = mWebView.getSettings();
		webSettings.setJavaScriptEnabled(true);

		mWebView.addJavascriptInterface(new Object() {
			List<Person> persons = new ArrayList<Person>();

			/**
			 * 由html页面中调用该方法,获得persons的size(),并动态的生成该数量的button
			 */
			public void clickOnAndroid() {
				mHandler.post(new Runnable() {
					public void run() {
						// System.out.println("hello");
						int nums = 10;
						for (int i = 0; i < nums; i++) {
							Person person = new Person();
							person.name = "name" + (i + 1);
							person.age = (i + 1) + "";
							persons.add(person);
						}
						String javascript = "javascript:wave(" + nums + ")";
						mWebView.loadUrl(javascript);
					}
				});
			}

			/**
			 * 由HTML页面调用,点击动态生成的button,
			 * 
			 * @param num
			 *            list序号
			 */
			public void show(int num) {
				System.out.println(num);
				Person p = persons.get(num);
				Toast
						.makeText(WebViewDemo.this,
								"姓名: " + p.name + "   年龄: " + p.age,
								Toast.LENGTH_SHORT).show();
			};
		}, "demo");

		// 加载本地html页面
		mWebView.loadUrl("file:///android_asset/demo.html");
	}
}


package com.test.model;

public class Person {
	public String name;
	public String age;
}


  • 大小: 7.4 KB
  • 大小: 14.3 KB
分享到:
评论

相关推荐

    android中webview加载本地页面,并处理js事件

    本示例“android中webview加载本地页面,并处理js事件”着重讲解如何利用`WebView`加载本地HTML页面,并通过JavaScript Interface与Java代码进行交互,同时在HTML中动态生成组件如`button`。 1. **WebView基本使用**...

    使用WebView加载本地html操作本地数据

    本文将深入探讨如何使用WebView加载本地HTML文件并操作本地数据,同时涉及JS与Java的交互,实现数据的双向传递,以及分页功能的实现。 首先,我们来理解WebView的基本使用。在Android布局XML文件中,添加WebView...

    android webView加载html 并引用本地资源(图片、字体库)

    以上就是Android中使用WebView加载HTML并引用本地资源的基本步骤。通过结合HTML、CSS和JavaScript,你可以构建出丰富的交互式应用界面,同时利用本地资源提升性能和用户体验。记得在实际项目中,还要考虑安全性和...

    android Webview加载本地图片,自适应布局大小

    总之,Android中的WebView加载本地图片并自适应布局大小,需要结合HTML、CSS、JavaScript以及Java代码进行综合运用。理解WebView的工作原理和配置选项,以及合理的图片尺寸控制和性能优化,都是实现这一功能的关键点...

    android webview 加载本地html 实现 与 java 之间的相互响应

    通过上述步骤,我们可以成功地在Android应用中使用WebView加载本地HTML,并实现Java与HTML的双向交互。这在开发混合型应用时非常有用,可以充分利用HTML的灵活性和Java的强大力量。同时,注意安全性问题,确保应用在...

    安卓浏览器WebViewJSHTML5相关-androidwebview加载本地html.zip

    提供了关于如何在Android中使用WebView加载本地HTML文件的相关示例和资料。 首先,我们要理解WebView的基本用法。在Android中,WebView是`android.webkit`包下的一个类,用于显示网页内容。要使用WebView,你需要在...

    webview加载本地资源例子

    本示例主要关注如何使用WebView加载本地的CSS和JS资源,从而实现一个混合式开发的应用。接下来,我们将深入探讨这个话题。 首先,我们需要了解`WKWebView`。在iOS 8及更高版本中,苹果引入了`WKWebView`来替代之前...

    Android WebView加载网页以及本地图片缓存问题

    1. 加载本地HTML文件:使用`loadDataWithBaseURL()`方法加载本地HTML文件。首先,将HTML文件放入assets或res/raw目录下,然后加载。 ```java String htmlContent = "&lt;html&gt;&lt;body&gt;&lt;img src='image.png'/&gt;&lt;/body&gt;&lt;/...

    webview加载html文本以及PDF加载

    在给定的"webview加载html文本以及PDF加载"的示例中,我们可以深入探讨以下几个关键知识点: 1. **WebView基本使用**:WebView是Android SDK中的一个视图组件,它可以加载和显示网页内容。使用WebView需要导入`...

    WebView加载html,javascript,url

    本教程将深入探讨如何在Android中使用WebView加载HTML、执行JavaScript以及处理URL导航。 1. **WebView的基本使用** - 创建WebView对象:首先在布局XML文件中添加WebView组件,然后在Activity中通过findViewById()...

    android studio使用NanoHTTPD 创建 http 服务器打开html并使用webView打开页面

    4. **使用WebView加载页面** - 在布局XML文件中添加`WebView`组件,并设置相应的属性。 - 在`Activity`或`Fragment`中初始化`WebView`,并设置`WebViewClient`,以便处理页面加载事件。例如: ```java webView =...

    QtWebView在线加载网页Demo

    通过学习和实践这个Demo,你可以了解到如何在Windows环境中使用QtWebView加载在线地图服务,同时掌握Qt的网络编程和Web交互能力。此外,你还可以进一步探索QtWebKit的高级特性,如本地存储、Web Inspector等,以提升...

    webView让本地页面相互调换案例

    在《jQuery Mobile权威指南》的学习过程中,你会遇到如何使用WebView来实现本地HTML页面间的相互调用。这个案例将帮助你理解和实践这一功能。 首先,我们来了解WebView的基本使用。在Android布局XML文件中,你需要...

    Android studio加载本地html的文档问题

    本文将详细介绍如何在Android Studio中正确地加载本地HTML文件。 #### 二、准备工作 在开始之前,请确保您的开发环境已配置好Android Studio,并创建了一个新的Android项目。如果您还不熟悉Android Studio的基本...

    替换WebView加载网页失败时的页面

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序...通过这种方式,我们可以对WebView加载失败的情况进行优雅处理,提升用户的使用体验。记住,良好的错误处理是任何高质量应用不可或缺的一部分。

    Android WebView加载本地的网页源码显示

    - **设置WebViewClient**:通过设置`webView.setWebViewClient(new WebViewClient())`,我们可以控制网页的行为,比如处理页面加载完成、错误等事件。 - **安全考虑**:在加载本地源码时,注意防止路径遍历攻击,...

    webView加载网络播放视频

    在Android中,使用WebView加载网页并播放视频的基本步骤如下: 1. **初始化WebView**: 首先,你需要在XML布局文件中添加一个WebView组件,并在Java代码中找到对应的View实例。然后,你可以通过`WebView webView = ...

    webView加载本地的图库

    它可以直接加载URL,也可以加载本地HTML文件。通过JavaScript接口,WebView还可以与Java代码进行通信,实现更丰富的功能。 然后,我们要了解H5加载图片。在HTML5中,图片通常通过`&lt;img&gt;`标签加载,其`src`属性指向...

    Android通过JS在线用webview加载PDF文件(无限放大版本)

    至此,你已经成功实现了Android Webview加载在线PDF文件并支持无限放大。需要注意的是,由于Webview是在浏览器环境中运行,所以性能可能受设备硬件限制,特别是对于大型或复杂的PDF文件。因此,优化Webview性能,如...

Global site tag (gtag.js) - Google Analytics