如何将值/变量从android java类传递到android 4.4.2 kitkat中的javascript/.html文件

如何将值/变量从android java类传递到android 4.4.2 kitkat中的javascript/.html文件,java,javascript,android,Java,Javascript,Android,我需要将值/变量(例如整数、字符串)从我的java类传递到android资产中的.html文件。假设它是一个基于用户单击的整数值。我需要将这个整数传递到.html文件(脚本)中,以确定要进行哪个ajax调用(通过if-else循环)。我到处搜索,但找不到答案 我需要在android 4.4.2上实现这一点。提前谢谢 你看到这个了吗?您对将JavaScript代码绑定到Android代码感兴趣。首先声明接口,然后实现将返回整数的方法。然后在JS代码中调用此方法以获取值 编辑 使用JS的界面: pu

我需要将值/变量(例如整数、字符串)从我的java类传递到android资产中的.html文件。假设它是一个基于用户单击的整数值。我需要将这个整数传递到.html文件(脚本)中,以确定要进行哪个ajax调用(通过if-else循环)。我到处搜索,但找不到答案

我需要在android 4.4.2上实现这一点。提前谢谢

你看到这个了吗?您对将JavaScript代码绑定到Android代码感兴趣。首先声明接口,然后实现将返回整数的方法。然后在
JS
代码中调用此方法以获取值

编辑

使用JS的界面:

public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /** Get the value */
    @JavascriptInterface
    public int getValue() {
        return value
    }
}
将此界面添加到您的
WebView

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
在JS代码中:

var value = Android.getValue();

您的Mainactivity.java可能是这样的

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends Activity  {

    StringGetter stringGetter;
    String key;
    WebView webView;
    String url;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

      // Here The key value might be an integer or string 
      // I have used string

      key="sending values to javascript";


         url = "file:///android_asset/Index.html";
        webView =(WebView)findViewById(R.id.webView);
        webView.setWebViewClient(new MyBrowser());



        stringGetter = new StringGetter(this);

        webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.loadUrl(url);
        webView.addJavascriptInterface(new StringGetter(this), "AndroidFunction");



    }

    public class StringGetter {
        Context jContext;

        StringGetter(Context context){
            jContext = context;
        }
        @JavascriptInterface
        public String getString() {
            return key;

        }
    }



    private class MyBrowser extends WebViewClient {


        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }




    }


}
}
你的HTML文件

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->


    <script type="text/javascript">

        function myMethod(){

        var tct = AndroidFunction.getString();
        document.getElementById("p").innerHTML = tct;
        alert(tct);
        }



    </script>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">

        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>

    <input type="button" id="btn" value=" Check " onClick="myMethod()"/>



    <a class="navbar-brand" href="#">Some Name </a>
    <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav navbar-right">
                <li class="active"><a href = "#">Home</a></li>
                <li class="active"><a href = "#">About</a></li>
                <li class="active"><a href = "#">Downloads</a></li>
                <li class="active"><a href = "#">Contact</a></li>
                <li><div class="dropdown">
                    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                        Dropdown
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
                        <li><a href="#">Action</a></li>
                        <li><a href="#">Another action</a></li>
                        <li><a href="#">Something else here</a></li>
                        <li role="separator" class="divider"></li>
                        <li><a href="#">Separated link</a></li>
                    </ul>
                </div></li>
                </ul>
    </div>
</nav>

<div class="container">
    <div class="jumbotron text-center">
    <div class="container-fluid">

    <div class="row">
        <div class="col-md-3">ColUMN 1 contains some text and other components to work with </div>
        <div class="col-md-3">COLUMN 2 contains some text and other components to work with </div>
        <div class="col-md-3">ColUMN 3 contains some text and other components to work with </div>
        <p id="p">hello</p>
    </div>
</div>
    </div>
</div>

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
</body>
</html>

引导101模板
函数myMethod(){
var tct=AndroidFunction.getString();
document.getElementById(“p”).innerHTML=tct;
警报(tct);
}
切换导航
  • 下拉列表
第1列包含一些要使用的文本和其他组件 第2列包含一些要处理的文本和其他组件 第3列包含一些要使用的文本和其他组件 你好


我已经读过了。你能给我提供一个简单的方法/代码片段,可以将整数值从java类(onClick方法)传递到.html文件(脚本)吗?非常感谢。我不知道为什么我被困在这个简单的事情,但你的帮助是感激的。我们可以直接使用HTML文件而不是你的JS答案吗?我想使用一个按钮来创建HTML文件,并将变量直接写入HTML中?