如何在Android webview中将变量从java传递给javascript?

问题描述

我已经在 stackoverflow 中看到了一个类似的问题,但我想要一个更好的解释这个问题的答案。我是 android 开发的新手,我试图弄清楚如何将我的 java 代码中的变量传递给 index.html 中的 javascript。欢迎提出任何建议。

解决方法

您可以尝试使用 JsBridge 库:

https://github.com/lzyzsd/JsBridge
,

尝试使用以下代码可能会对您有所帮助。

//Android WebView code
JavaScriptInterface JSInterface;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wv = (WebView)findViewById(R.id.webView1);
wv.getSettings().setJavaScriptEnabled(true);
// register class containing methods to be exposed to JavaScript
JSInterface = new JavaScriptInterface();
wv.addJavascriptInterface(JSInterface,"JSInterface");
wv.loadUrl("file:///android_asset/myPage.html");
}

public class JavaScriptInterface {
@android.webkit.JavascriptInterface
public void showToast(String msg)
{
    Log.d("TAG",msg);
}
}



//This is your web page
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
       function init()
       {
          var testVal = 'Android Toast!’;
          Android.showToast(testVal);
       }
    </script>
</head>
<body>
<div style="clear: both;height: 3px;"> </div>
  <div>
  <input value="submit" type="button" name="submit"
       id="btnSubmit" onclick="javascript:return init();" />
</div>
 </body>
</html>