Android中获取网页表单中的数据

MainActivity如下:

package cn.testjavascript;
import java.util.StringTokenizer;
import android.os.Bundle;
import android.webkit.WebView;
import android.app.Activity;
/**
 * Demo描述:
 * 在Android中获取网页里表单中的数据
 */
public class MainActivity extends Activity {
   private WebView mWebView;
   private String date =null;
   private String email = null;
   private String username = null;
   private String sex = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}
	private void init(){
		mWebView=(WebView) findViewById(R.id.webView);
		initWebViewSettings();
		mWebView.loadUrl("file:///android_asset/form.html");
		//注意addJavascriptInterface方法中第二参数
		//它表示我们的java对象javaClass的别名.
		//这样Javascript就可以通过该别名来调用Android中的方法
		//即Javascript代码中的:window.testform.send(date+"|"+email+"|"+name+"|"+sex);
		//send是方法名
		//testform是别名
		mWebView.addJavascriptInterface(new Object() {
			public void send(String userInfo) {
				StringTokenizer userInfoStringTokenizer = new StringTokenizer(userInfo, "|");
				date = userInfoStringTokenizer.nextToken();
				email = userInfoStringTokenizer.nextToken();
				username = userInfoStringTokenizer.nextToken();
				sex = userInfoStringTokenizer.nextToken();
				System.out.println("userInfoStringTokenizer="+userInfoStringTokenizer.toString());
				System.out.println("date=" + date);
				System.out.println("email=" + email);
				System.out.println("username=" + username);
				System.out.println("sex=" + sex);
				};
		}, "testform");

	}
	private void initWebViewSettings(){
		mWebView.setVerticalScrollBarEnabled(false);
		mWebView.setHorizontalScrollBarEnabled(false);
		mWebView.getSettings().setJavaScriptEnabled(true);
		mWebView.getSettings().setSupportZoom(true);
		mWebView.getSettings().setDomStorageEnabled(true);
		mWebView.getSettings().setPluginsEnabled(true);
		mWebView.requestFocus();
		mWebView.getSettings().setUseWideViewPort(true);
		mWebView.getSettings().setLoadWithOverviewMode(true);
		mWebView.getSettings().setSupportZoom(true);
		mWebView.getSettings().setBuiltInZoomControls(true);
	}

}

 

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"
    >

    <WebView
        android:id="@+id/webView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerInParent="true"
     />

</RelativeLayout>

 

form.html如下:

<body>
		<form action="" method="post">
		时间:<br>
		<select id="shijian" name="date">
		    <option value="2011">2011</option>
		    <option value="2012">2012</option>
		    <option value="2013">2013</option>
		    <option value="2014">2014</option>
		    <option value="2015">2015</option>
		</select><br>
			邮箱:
			<input id="email" type="text" name="emailID" />
			<br>
			昵称:
			<input id="name" type="text" name="username" />
			<br>
			性别:<br>
			<input id="men" type="radio" name="sex" value="men"/>男
		    <input id="women" type="radio" name="sex" value="women"/>女
		    <br>
		    <input type="submit" value="注册" onclick="f()"/>
		    <input type="button" value="取消" />
		</form>
	</body>
	<script type="text/JavaScript" language="javascript">
	     function f(){
	        var email = document.getElementById('email').value;
	        var name = document.getElementById('name').value;
	        var date = document.getElementById('shijian').value;
	        if(document.getElementById('men').checked && !document.getElementById('women').checked){
	        var sex = document.getElementById('men').value;
	        }else if(!document.getElementById('men').checked && document.getElementById('women').checked){
	        var sex = document.getElementById('women').value;
	        }
	        window.testform.send(date+"|"+email+"|"+name+"|"+sex);
         }
		</script>

 

时间: 2024-08-02 01:21:44

Android中获取网页表单中的数据的相关文章

Android中获取网页表单中的数据实现思路及代码_Android

MainActivity如下: 复制代码 代码如下: package cn.testjavascript; import java.util.StringTokenizer; import android.os.Bundle; import android.webkit.WebView; import android.app.Activity; /** * Demo描述: * 在Android中获取网页里表单中的数据 */ public class MainActivity extends Ac

Android中获取网页表单中的数据实现思路及代码

MainActivity如下: 复制代码 代码如下: package cn.testjavascript; import java.util.StringTokenizer; import android.os.Bundle; import android.webkit.WebView; import android.app.Activity; /** * Demo描述: * 在Android中获取网页里表单中的数据 */ public class MainActivity extends Ac

JavaScript获取网页表单提交方式的方法_javascript技巧

本文实例讲述了JavaScript获取网页表单提交方式的方法.分享给大家供大家参考.具体如下: JavaScript获取网页表单的提交方式是get还是post,获取提交方式可以通过表单的method属性获得 <!DOCTYPE html> <html> <body> <form id="frm1" action="form_action.asp" method="get"> First name:

android中获取root权限的方法以及原理(转)

一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的"越狱"有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等. 2. Root的原理介绍 谷歌的android系统管理员用户就叫做root,该帐户拥有整个系统至高无上的权利,它可以访问和修改你手机几乎所有的文件,只有root才具备最高级别

Android中Volley框架进行请求网络数据的使用_Android

问题的阐述:Android SDK中的HttpClient和HttpUrlConnection两种请求方式用来处理网络的复杂的操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图像缓存,请求的调度等等: 解决:Volley就是为解决这些而生,它与2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷:抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request.另外,Volley在不同的线程上异步执行所有请求而避免

Android中Service实时向Activity传递数据实例分析

本文实例讲述了Android中Service实时向Activity传递数据的方法.分享给大家供大家参考.具体如下: 这里演示一个案例,需求如下: 在Service组件中创建一个线程,该线程用来生产数值,每隔1秒数值自动加1,然后把更新后的数值在界面上实时显示. 步骤如下: 1.新建一个android项目工程,取名为demo. 2.新建一个Service类,用来实时生产数值,供界面实时显示. package com.ljq.activity; import android.app.Service;

Android中Volley框架进行请求网络数据的使用

问题的阐述:Android SDK中的HttpClient和HttpUrlConnection两种请求方式用来处理网络的复杂的操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图像缓存,请求的调度等等: 解决:Volley就是为解决这些而生,它与2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷:抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request.另外,Volley在不同的线程上异步执行所有请求而避免

Android中获取屏幕的长度和宽度

android中获取屏幕的长度和宽度,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得 到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲测一下 测试参数: 测试环境: i9000( 三星) 物理屏幕:480*800px density :1.5 测试代码: // 获取屏幕密度(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏

JavaScript获取网页表单action属性的方法

 本文实例讲述了JavaScript获取网页表单action属性的方法.分享给大家供大家参考.具体如下: JavaScript获取网页表单的action属性,即要提交到的url地址,有时候需要提交到当前页面,则可能会设置action为空 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html> <html> <body> <form id="frm1" action="jb51.php&q