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类的方法传递数据的更多相关文章

  1. [转]JS调用Android里面的方法,Android调用JS里面的方法

    FROM : http://blog.csdn.net/hj563308597/article/details/45197709 Android WebView 在公司Android的开发过程中遇到一 ...

  2. WebView中JS调用Android Method 遇到的坑整理

    WebView是android中常用的一个组件,其作用是展示网页,并让网页和android app进行一些业务逻辑上的交互. 其坑无数,相信用过的都知道,一个一个来解决吧. 1.怎么互调: <! ...

  3. WebView中Js与Android本地函数的相互调用

    介绍 随着Html5的普及,html在表现力上不一定比原生应用差,并且有很强的扩展兼容性,所以越来越多的应用是采用Html与Android原生混合开发模式实现. 既然要实现混合开发,那么Js与Andr ...

  4. 在webView 中使用JS 调用 Android / IOS的函数 Function

    最近做一个项目,混合了NativeCode 和 HTML,为了便于JS 调用App的一些方法,统一封装一个Js方法,记录如下 Android 端首先要再WebView中允许JS的调用 WebView ...

  5. js调用android本地java代码

    js调用android本地java代码 当在Android上使用WebView控件开发一个Web应用时,可以创建一个通过Javascript调用Android端java代码的接口.也就是可以通过Jav ...

  6. Android与JS混编(js调用android相机)

       参考android相机调用,http://blog.csdn.net/yanzi1225627/article/details/33028041/,谢谢 相机怎么调用就不做赘述了,下面是js调用 ...

  7. PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

    PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) ...

  8. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  9. js 调用 android 安卓 代码

    说明一下注意版本问题,不加没效果的 @JavascriptInterface //sdk17版本以上加上注解 //Html调用此方法传递数据 public void show() { Toast.ma ...

随机推荐

  1. winPcap编程之获取适配器信息(二)

    首先要读一下这一页的东西:http://www.winpcap.org/docs/docs_412/html/group__wpcapsamps.html 可以结合中文版本看http://www.fe ...

  2. 如何从MVP模式进阶到Clean模式

    从类图上来看,MVP都是一个业务一个Presenter,每个Presenter都是一个接口,它还包含了View的接口,用于定于和View相关的行为,然后Activity等业务类实现View的接口,因为 ...

  3. Cygwin - windows系统下运行linux操作 --代替linux虚拟机安装、双系统的繁琐

    我把Cygwin视为Windows用户熟练linxu系统操作的良好途径.它不需要虚拟机.双系统等安装对电脑知识.硬件的要求,只需要基本的软件安装操作即可.以下是安装步骤供小白同胞参考. Cygwin安 ...

  4. git 分支改名

    给一个git分支改名的方法很简单 如果对于分支不是当前分支,可以使用下面代码: git branch -m 原名 新 如果是当前,那么可以使用加上新名字 git branch -m 原名 参见: ht ...

  5. JavaScript 开发人员需要知道的简写技巧

    本文来源于多年的 JavaScript 编码技术经验,适合所有正在使用 JavaScript 编程的开发人员阅读. 本文的目的在于帮助大家更加熟练的运用 JavaScript 语言来进行开发工作. 文 ...

  6. 数据权限设计——基于EntityFramework的数据权限设计方案:一种设计思路

    前言:“我们有一个订单列表,希望能够根据当前登陆的不同用户看到不同类型的订单数据”.“我们希望不同的用户能看到不同时间段的扫描报表数据”.“我们系统需要不同用户查看不同的生产报表列”.诸如此类,最近经 ...

  7. IntelliJ IDEA创建多模块依赖项目

    刚从Eclipse转IDEA, 所以记录一下IDEA的使用 创建多模块依赖项目 1. 新建父工程 这样就创建好了一个普通项目,一般我们会把src删掉,在此项目下新建新的模块 2. 新建子模块 创建供前 ...

  8. CS231n 2017 学习笔记01——KNN(K-Nearest Neighbors)

    本博客内容来自 Stanford University CS231N 2017 Lecture 2 - Image Classification 课程官网:http://cs231n.stanford ...

  9. js验证是否为数字的总结(转)

    作者: 字体:[增加 减小] 类型:转载 时间:2013-04-14我要评论 js验证是否为数字的总结,需要的朋友可以参考一下 js验证是否为数字,最简单的方法: isNaN函数的使用: functi ...

  10. Android 开发笔记___drawable

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...