Android中获取网页表单中的数据实现思路及代码
Android中获取网页表单中的数据实现思路及代码
发布时间:2016-12-28 来源:查字典编辑
摘要:MainActivity如下:复制代码代码如下:packagecn.testjavascript;importjava.util.Strin...

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="注册"/>

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

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类