我有以下 javascript 代码:
function mine()
{
var i = 3;
AndroidObject.call();
}
其中 AndroidObject 是 javascript 接口(interface)。它有方法 call
WebView myWebView;
public void call()
{
runOnUiThread(new Runnable()
{
@Override
public void run()
{
myWebView.loadUrl('javascript:alert(i);');
}
});
}
以下代码在 javascript 中执行“i is not defined”时会产生错误,因为 javascript 不会在调用 java 代码的上下文中执行。
是否可以在同一上下文中从 java 方法执行 JS,即在上述情况下使“i”可见?
“i”在此示例中是整数,但它可以是任何类型的对象。
谢谢。
最佳答案
假设i是一个整数,
function mine()
{
var i = 3;
AndroidObject.call(i);
}
和
WebView myWebView;
public void call(Integer i)
{
Integer temp = i;
runOnUiThread(new Runnable()
{
@Override
public void run()
{
myWebView.loadUrl('javascript:alert(' + temp + ');');
}
});
}
关于javascript - 安卓 WebView : Execution of javascript from java method called from javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822071/