java 和js的交互

Java和js的交互,js调用java中的方法,同时java代码法调用js中的方法:

1.      Java端调用js的方法

2.      Js调用java端的方法

Java端:(android)

1.      布局文件

<span style="font-size:14px;"><LinearLayout 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"
      android:orientation="vertical"
      tools:context=".MainActivity">

<!—点击按钮调用js方法-->

   <Button
        android:id="@+id/btn_javaToJs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"        
        android:text="Java调用js的代码"
        />

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

</LinearLayout></span>

<span style="font-size:14px;">1.点击按钮调用html中的js方法:

MainActivity:

   btn_javaToJs.setOnClickListener(new OnClickListener() {

         @Override
         publicvoid onClick(View view) {
            //这里的jsMethod();就是网页的js方法
            webView.loadUrl("javascript:jsMethod('来自Java的调用')");

         }
      });</span>
<span style="font-size:14px;">Html:

<body>

  <pid="content"></p>

</body>

   <script type="text/javascript"src="js/jquery-1.6.4.min.js"></script>

 <script type="text/javascript">

   function jsMethod(param) {

       document.getElementById("content").innerHTML= "Java has invoked JS function and returndthe data:"+param;

    }

 </script></span>


效果:

2.

js访问Java的方法:
java:

//定义java的方法

   class JavaMethods{

      //因为安全问题,在Android4.2中(如果应用的android:targetSdkVersion数值为17+)JS只能访问带有 @JavascriptInterface注解的Java函数。

      @JavascriptInterface

      privatevoid javaMethod(String str){

         Toast.makeText(getApplicationContext(),"从js传来的参数是:" + str,

                Toast.LENGTH_LONG).show(); 

   Log.i("JsParam","来自js的参数:"+str); }

   }

//绑定Java对象到WebView,这样可以让JS与Java通信(JS访问Java方法) 第一个参数是自定义类对象,映射成JS对象第二个参数是第一个参数的JS别名

webView.addJavascriptInterface(newJavaMethods(),"javaMethod");

html:

 <p>   <inputtype="button" value="js调用java方法" οnclick="window.log.javaMethod('js调用java函数')" /></p>

测试结果:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值