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>


 

 

你可能感兴趣的:(android)