android 和 js 交互

1.html代码

<script type="text/javascript">
    function javacalljs(){
         document.getElementById("content").innerHTML = "JAVA调用了JS的无参函数";
    }
    function javacalljswith(arg){
         document.getElementById("content").innerHTML = (arg);
    }
</script>
<input type="button" value="点击调用java代码" onclick="window.android1.jsCall()" />
<input type="button" value="点击调用java代码并传递参数" onclick="window.android1.jsCall(‘paramsvalue‘)" />  

2.java代码

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.widget.Toast;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

/**
 * Android  和 js 的互相调用
 * 布局文件为 2个 button,一个WebView
 */
public class ActivityWebView extends Activity {
    @BindView(R.id.webView)
    WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ble);
        ButterKnife.bind(this);

        webView.loadUrl("http://192.168.61.104:8080/update/android_js.html");
        webView.getSettings().setJavaScriptEnabled(true);// 启用javascript
        webView.addJavascriptInterface(this, "android1"); // android1 为html中的别名
    }

    /**
     * 被js调用的函数
     */
    @JavascriptInterface
    public void jsCall() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(ActivityWebView.this, "无参数的方法被js调用", Toast.LENGTH_SHORT).show();
            }
        });
    }

    /**
     * 被js调用的函数 jsCall
     * jsCall这个为html中的函数名字
     * 必须加上     @JavascriptInterface 这个注解
     */
    @JavascriptInterface
    public void jsCall(final String params) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                new AlertDialog.Builder(ActivityWebView.this).setMessage(params).show();
            }
        });
    }

    @OnClick(R.id.btn0)
    public void btn0() {
        webView.loadUrl("javascript:javacalljs()");// 调用无参的js:  javacalljs 为js的函数名
    }

    @OnClick(R.id.btn1)
    public void btn1() {
        String params = "params";// 调用有参的js:  javacalljswith 为js的函数名,params 为参数值
        webView.loadUrl("javascript:javacalljswith(‘" + params + "‘)");
    }
}

参考: http://blog.csdn.net/leejizhou/article/details/50894531/

时间: 2024-08-10 00:13:01

android 和 js 交互的相关文章

android 与js交互

android与js交互 // 设置编码 webView.getSettings().setDefaultTextEncodingName("utf-8"); // 支持js webView.getSettings().setJavaScriptEnabled(true); //参数1为传递的android对象,参数2为传递对象的变量名称之后JS中使用变量名进行对对象的操作 webView.addJavascriptInterface(new TestJs(), "testO

(转)Android与js交互实例(附源码)

本文转载于:http://blog.csdn.net/ithomer/article/details/8737999# Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true Android(Java)与JavaScript(HTML)交互有四种情况: 1) Android(Java)调用HTML中js代码 2) Android(Java)调用HTML中js代码(带参数) 3) HTML中js调用Android(

Webview Android与js交互

Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true Android(Java)与JavaScript(HTML)交互有四种情况: 1) Android(Java)调用HTML中js代码 2) Android(Java)调用HTML中js代码(带参数) 3) HTML中js调用Android(Java)代码 4) HTML中js调用Android(Java)代码(带参数) 下面示例总结这四种情况,直接上干货:

android与js交互

首先引用一篇文章,看过这篇文章基本上就明白android大致与js是如何交互的了 Android与HTML+JS交互入门 ----------------------------分割线----------------------------------- 首先要知道js是啥,js就相当于在html内的函数方法,全称为javascript 那么要交互,必然二者要共存于一起,在android中如何打开一个页面,比较常用的方法就是使用一个WebView控件,用它来加载网页 交互也必然是双方的,有来有往

Android与js交互实例

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true Android(Java)与JavaScript(HTML)交互有四种情况: 1) Android(Java)调用HTML中js代码 2) Android(Java)调用HTML中js代码(带参

Android 混淆JS交互没反应

-keepattributes *Annotation* -keepattributes *JavascriptInterface* -keepclassmembers class fqcn.of.javascript.interface.for.webview { public *; } -keepclassmembers class cn.xx.xx.Activity$AppAndroid { public *; } 最重要的 -keep class <包名>.类名$*{ <meth

Android与JS交互问题

Android通过WebView加载js网页代码两者之间交互 public class MainActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = 

Android—android与js交互以及相互传参

Android中可以通过WebView来实现与js的交互,让用户可以在android客户端看到js写的页面,接下来为大家介绍的就是怎样实现此功能: 首先android项目目录下有“assets”文件夹,开发者需要将html文件拷贝到此文件夹下. html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra

项目中Android与Js交互

一.项目涉及的类: DetailCourseMainActivity,HtmlCountMainFragment,HtmlCountFragment,HtmlCountJSInterface,AnswerWebView 二.逐步分析: 1.MainActivity: 1)点击:打开页面 showFragment(HtmlCountMainFragment.class); 2)针对返回键的处理: onBackPressed(): 一般的:super.onBackPressed();return;对