2017-08-29 27 views
3

私はdocu https://docs.google.com/document/d/10fmlEYIHcyead_4R1S5wKGs1t2I7Fnp_PaNaa7XTEk0/edit# セクションの@JsFunctionでexampelsを試しましたが、javascriptからjava関数を呼び出すためのアイデアしかありません。jsInteropでGWTからJavaScript関数を呼び出すにはどうすればいいですか?

私はjavascriptのファイルには、次のコードで私のGWTアプリケーションに含まれてい:

var client = new Circuit.Client({ 
    client_id: '78cafde2f6854ad5ad80a67c532687bc', 
    scope: 'READ_USER_PROFILE,READ_CONVERSATIONS', 
    domain: 'circuitsandbox.net' 
}); 

function startLogon() { 
    client.logon() 
     .then(user => console.log('Logged on as ' + user.displayName)) 
     .then(client.addEventListener('itemAdded', item => console.log('itemAdded event received:', item))) 
     .then(client.getConversations) 
     .then(conversations => { 
     console.log('Retrieved ' + conversations.length + ' conversations'); 
    return client.addTextItem(conversations[0].convId, 'Hello World'); 
     }) 
     .then(item => console.log('Msg sent on ' + (new Date(item.creationTime)).toString())) 
     .catch(console.error); 
} 

今i「はstartLogon()」関数を呼びたい - ラッパーと一緒に私の - 私のアプリからjsInteropを使用して注釈。私は成功せず、2次の例を試してみました:

Implement Javascript Function Callback with GWT JsInterop

JsInterop wrapping a javascript function property

を私はJavaScriptの知識が非常に悪いことを、言わなければなりません。

誰かに私にコード例を教えてもらえますか? 事前に感謝します!

+0

@EJoshuaS GWTがJavaをコンパイル可能なJSにコンパイルするので、それが問題です。 –

+1

戻り値が何であるかを明確にすることはできますか?これはPromiseであり、Javaコードで使用しますか? Javaで 'startLogon()'を呼び出して終了しますか? –

答えて

2

この静的メソッドを任意のクラスに追加します。

@JsMethod(namespace = GLOBAL) 
public static native void startLogon(); 

返された約束では何もできませんが、これは動作します。返された約束を使用したい場合は、elemental2を追加し、代わりにPromise startLogon()を使用することをお勧めします。

関連する問題