Yes you can do it.
Sample code:
public void onModuleLoad() {
exportSayHello();
Button btn = new Button("Click");
btn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
buttonClicked("vartika");
}
});
RootPanel.get().add(btn);
}
public static native void exportSayHello() /*-{
$wnd.sayHelloFunction = $entry(@com.gwt.test.client.GWTTestProject::sayHello(Ljava/lang/String;));
}-*/;
public static native void buttonClicked(String value)/*-{
$wnd.sayHelloFunction(value);
}-*/;
public static native void sayHello(String value)/*-{
$wnd.alert("Hello " + value);
}-*/;
Steps to follow:
- Export method
sayHello()
to JavaScript usingJSNI
- Now call it from native method
buttonClicked()
using the same namesayHelloFunction
that is exported toJavaScript
.
Read more about GWT JSNI.