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

 更新时间:2013年06月24日 15:14:57   作者:  
在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>

相关文章

  • Flutter 自定义Drawer 滑出位置的大小实例代码详解

    Flutter 自定义Drawer 滑出位置的大小实例代码详解

    这篇文章主要介绍了Flutter 自定义Drawer 滑出位置的大小,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android编程中聊天页面背景图片、标题栏由于键盘引起问题的解决方法

    Android编程中聊天页面背景图片、标题栏由于键盘引起问题的解决方法

    这篇文章主要介绍了Android编程中聊天页面背景图片、标题栏由于键盘引起问题的解决方法,针对键盘弹出时标题栏及背景图片异常的相关解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Android如何禁止向EditText控件中输入内容详解

    Android如何禁止向EditText控件中输入内容详解

    EditText是接受用户输入信息的最重要控件。下面这篇文章主要给大家介绍了关于Android如何禁止向EditText控件中输入内容的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • Android程序开发之使用PullToRefresh实现下拉刷新和上拉加载

    Android程序开发之使用PullToRefresh实现下拉刷新和上拉加载

    这篇文章主要介绍了Android程序开发之使用PullToRefresh实现下拉刷新和上拉加载的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • 关于Touch Panel AA区要做外扩的原因解析

    关于Touch Panel AA区要做外扩的原因解析

    今天小编就为大家分享一篇关于Touch Panel AA区要做外扩的原因解析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Android仿QQ、微信聊天界面长按提示框效果

    Android仿QQ、微信聊天界面长按提示框效果

    最近在工作项目中要实现一个长按提示 “复制” 的功能,类似于QQ、微信聊天界面长按提示框效果,本来想偷懒在网上找个开源的项目用,但是看了好几个都不是很满意,所以就打算按照自己的思路来实现一个。下面分享给大家,有需要的朋友们可以参考借鉴。
    2016-11-11
  • Android实现自定义Crash handler记录崩溃信息实例代码

    Android实现自定义Crash handler记录崩溃信息实例代码

    这篇文章主要给大家介绍了Android实现自定义Crash handler记录崩溃信息的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-02-02
  • Android10 启动之SystemServer源码分析

    Android10 启动之SystemServer源码分析

    这篇文章主要为大家介绍了Android10 启动之SystemServer源码分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Android ViewDragHelper实现京东、淘宝拖拽详情功能的实现

    Android ViewDragHelper实现京东、淘宝拖拽详情功能的实现

    这篇文章主要介绍了Android ViewDragHelper实现京东、淘宝拖拽详情,实现这种效果大概分为三种方式,具体哪三种方式大家通过本文了解下吧
    2018-04-04
  • Android控件系列之EditText使用方法

    Android控件系列之EditText使用方法

    EditText是接受用户输入信息的最重要控件。通过前面课程的学习,您可能会猜到可以利用EditText.getText()获取它的文本,但真正的项目中,可能没那么简单,需要更多的限制,如文本长度限制,是否数字限制等等
    2012-11-11

最新评论