gwt / jsni- Передача строки из внешнего JS в Java - PullRequest
0 голосов
/ 09 января 2012

Как мне позвонить с внешнего JS через JSNI?

Например:

//Some external JS code 
         ...
        this.onFeatureClick = function(event) {
        ...
        var name = "Batman";
        passToJava(name); //Invoke java method and pass String name
        };

Я попробовал это здесь:

 public void onModuleLoad() {
     ...
     nativeVariableName(); //Call native method
 }

 public static void passToJava(String name) {
    System.out.println(name);
 }

public native String nativeVariableName() /*-{
            $wnd.passToJava = function(name) {
            @com.google.myproject.webinterface.client.MyWebInterface::passToJava(Ljava/lang/String;)(name);
            }; }-*/;

Я даже не знаю, работает ли вызов из JavaScript.Спасибо.

1 Ответ

2 голосов
/ 09 января 2012

Этот код работает просто отлично.Я не знаю, где вы ожидаете увидеть результат вызова System.out.println, но похоже, что вы смотрите не туда.Замените System.out.println на Window.alert и убедитесь сами.Если это не работает, это означает, что ошибка находится в каком-то другом месте:

  • Проверьте, правильно ли представлена ​​функция (откройте консоль в браузере и введите window.passToJava, если она отображает ноль,функция не была выставлена)
  • Проверьте, правильно ли вызывается onFeatureClick.
...