Esiste questo metodo di immissione $ che è possibile utilizzare in GWT per consentire a javascript esterno di eseguire i metodi java. Puoi vedere le spiegazioni nella loro documentazione https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsJSNI?hl=fr#callingGWT - Chiamare il metodo di istanza da javascript esterno
Tuttavia, l'esempio esiste solo con metodi statici. Sto cercando di scrivere per un metodo non statico e quando provo a chiamarlo, ottengo un'eccezione:
java.lang.ClassCastException: Cannot cast com.google.gwt.core.client.JavaScriptObject$ to mypackage.MyModule
Ecco il mio codice:
public native void setRefreshModuleCallback() /*-{
$wnd.refreshModule = $entry(function() {
[email protected]::refreshModuleJava();
alert('test');
});
}-*/;
public void refreshModuleJava() {
logger.log(Level.WARNING, "REFRESH");
}
quello che trovo molto divertente è chiamato questo avviso, vedo il risultato nel browser, ma la chiamata appena prima non viene eseguita.
Sai se è effettivamente possibile fare una cosa del genere?
Nota che ho dato un'occhiata a questo post e non ha aiutato (o ho perso qualcosa) http://stackoverflow.com/questions/9676960/issue-with-calling-instance-method-from-handwritten- javascript –