2011-01-30 5 views

답변

5

JavaScript 함수 개체를 나타내는 JavaScriptObject을 전달할 수 있어야합니다. 자바 기능으로는 아무 것도 할 수 없다고 생각합니다. 예를 들어 다음과 같이 할 수 있습니다.

final native JavaScriptObjet myFuncCreator() /*-{ 
    return function (x, y) { return y - x; }; 
}-*/ 

final native int myFuncUser(JavaScriptObject funcObj, int a, int b) /*-{ 
    return funcObj(a,b); 
}-*/ 

물론이 코드를 시도하지는 않았지만 제대로 작동해야합니다.

2

sinelaw의 답변과 동일한 줄에 따라 여기에 콜백을받는 방법이 있습니다.

static final native JavaScriptObject createFunction(final Runnable runnable) 
/*-{ 
    return function() { 
     [email protected]::run()(); 
    } 
}-*/ 

static final void registerOnClickCallback(Element element, final Runnable runnable) { 
    JavaScriptObject callback = createFunction(runnable); 
    _registerOnClickCallback(element, callback); 
} 

static final native void _registerOnClickCallback(Element element, JavaScriptObject callback) 
/*-{ 
    element.onclick = callback; 
}-*/ 

희망이 있습니다.

관련 문제