Проблема с вызовом метода экземпляра из рукописного JavaScript - PullRequest
0 голосов
/ 13 марта 2012

Может ли кто-нибудь помочь с тем, что не так в приведенном ниже коде (основываясь на ответах на аналогичный вопрос, заданный в SO):

    public String javaMethod(String input) {
        return "it works";
}

    public native void defineBridgeMethod() /*-{ 
        var that = this;
        $wnd.jsFunction= $entry(function(msg) {
                 that.@com.myclass.ClassName::javaMethod(Ljava/lang/String;)(msg)
            });
    }-*/;

Проблема заключается в том, что Javascript не находит jsFunction: alert (jsFunction)) в коде Javascript возвращает 'undefined'.

Спасибо.

Редактировать: Да, через час: понял, что мне просто нужно было вернуть that.@com...!

1 Ответ

2 голосов
/ 16 марта 2012

Да, через час: понял, что мне просто нужно вернуть that.@com...

Метод моста должен быть:

public native void defineBridgeMethod() /*-{ 
    var that = this;
    $wnd.jsFunction= $entry(function(msg) {
             return that.@com.myclass.ClassName::javaMethod(Ljava/lang/String;)(msg)
        });
}-*/;
...