1,具体的思路如下:

  在android中写一个Activity,里面写一个webview,这个webview加载本地的一个html文件,显示这个网页,这个网页包括一个用户名和密码的输入框和两个按钮(只有登陆按钮有用),输入用户名密码之后调用android中的类,并把输入的数据传过去,再在android中输出出来(具体你那数据做什么操作就看你的需求了),这样就做大额js与android数据交互的效果了:

  在android端,一些webviwe的设置和自定义类的写法如下源码:

  package com.example.webview;

  import android.app.Activity; 
  import android.os.Bundle; 
  import android.webkit.JavascriptInterface; 
  import android.webkit.WebChromeClient; 
  import android.webkit.WebSettings; 
  import android.webkit.WebView;

  public class MainActivity extends Activity { 
    private WebView webview; 
    private String URL = "http://192.168.31.122/word2/login.html";//这是你要访问你html文件的存放地址,我这个是放在appache中的word文件夹下的login.html文件 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      webview = (WebView) findViewById(R.id.webView1); 
      WebSettings webset = webview.getSettings(); 
      webset.setJavaScriptEnabled(true);// 表示webview可以执行服务器端的js代码 
      webview.setWebChromeClient(new WebChromeClient(){}); 
      webview.addJavascriptInterface(new JsObject(),"jsObject"); 
      webview.loadUrl(URL); 
    } 

    public class JsObject { 
      @JavascriptInterface 
      public void getMessage(String name, String pwd) { 
        // TODO Auto-generated method stub 
        System.out.println("==="+"name:" + name + "---pwd:" + pwd); 
      } 
    } 

  }

  而xml比较简单,只是一个比较简单的webview而已,代码如下:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" 
    android:orientation="vertical" >

    <WebView 
      android:id="@+id/webView1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" />

  </LinearLayout>

  对于要加载的html文件只要放在你要访问的地方就可以,比如appache下,具体代码如下:

   <!DOCTYPE html>

  <html> 
    <head> 
      <script> 
        function login(){ 
          var th = document.form; 
          var user = th.user.value; 
          if(user==""){ 
            alert("请输入用户名!"); 
          }else{ 
            var name = th.user.value; 
            var pwd = th.pwd.value; 
            var name2 = jsObject.getMessage(name,pwd); 
          } 
        } 
      </script> 
    </head> 
    <body> 
      <form name='form' method='post' class='form' action=''> 
        <table id='login_table'> 
          <tr> 
            <td> 
              <span>账号:</sapn> 
            </td> 
            <td> 
              <input type='text' class='usr' name='user' value=''/> 
            </td> 
            <td></td> 
          </tr> 
          <tr> 
            <td> 
              <span>密码:</sapn> 
            </td> 
            <td> 
              <input type='password' class='psw' name='pwd' value=''/> 
            </td> 
            <td></td> 
          </tr> 
          <tr> 
            <td></td> 
            <td> 
              <input type="file" value="上传图片" /> 
              <button class='denglu' onclick="login()">登陆</button> 
              <button class='clear'>清空</button> 
            </td> 
            <td></td> 
          </tr> 
        </table> 
      </form> 
    </body> 
  </html> 
   

 

本文链接: WebView之js调用Android类的方法传递数据,转载请注明。

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()