I suggest you create a function to get the value of i if your i variable is global, for example:
var i = 20; function getValueOfI() { return i; }
and in your java code use something like this:
myWebView.loadUrl('javascript:alert(getValueOfI());');
Update If you want to achieve the same result with local variables:
function mine() { var i = 3; AndroidObject.call(i); }
where AndroidObject is the javascript interface for java. It has a method call
WebView myWebView; public void call(final Integer i) { runOnUiThread(new Runnable() { @Override public void run() { myWebView.loadUrl("javascript:alert(" + i + ");"); } }); } public void call(final String i) { runOnUiThread(new Runnable() { @Override public void run() { myWebView.loadUrl("javascript:alert(" + i + ");"); } }); } public void call(final Boolean i) { runOnUiThread(new Runnable() { @Override public void run() { myWebView.loadUrl("javascript:alert(" + i + ");"); } }); }
source share