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>