如何在Javascript接口(interface)中将函数作为参数传递,并将其保存为字符串然后调用?
例如,我描述了 Javascript 接口(interface)
:
class JSInterface{
String myFunction;
//set function into myFunction attribute
@JavascriptInterface
public void setMyFunction(String func) {
this.myFunction = func;
}
@JavascriptInterface
public void executeMyFunction() {
webView.loadUrl("javascript:"+this.myFunction);
}
}
添加:
//...
webview..addJavascriptInterface(new JSInterface, "application");
//...
在JS
中:
window.application.setMyFunction(function(){
//some code here...
});
注意:来自 JS
的传输函数需要采用这种形式,而不是字符串或 json。
但事实上,在 setMyFunction
中,我得到 "undefined"
但期望 "window.application.setMyFunction(function(){//some code here. ..});"
.请告诉我该怎么做,我将不胜感激!
最佳答案
试试这个:
Convert Javascript Object (incl. functions) to String
然后将函数调用附加到字符串:
function(){
..
}()
并对该字符串调用eval()
。
关于java - 如何在 Javascript 接口(interface)中将 Javascript 函数作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19212988/