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>
本文地址:https://www.stayed.cn/item/19649
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我