Android中擷取網頁表單中的資料

來源:互聯網
上載者:User

[java]
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); 
    } 
     

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如下:

[html]
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> 

<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如下:

[javascript]
<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> 

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

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.