2012-09-25 79 views
0

我正在嘗試開發Facebook的遊戲,我正在嘗試通過js-sdk「發佈到時間軸」功能。我的代碼庫是java,使用lib-gdx,問題是,我不知道如何調用顯示「Publish to Timeline」提示的js函數。什麼是正確的做法?我已經試過這一項記載here,但不工作:從java調用javascript函數的正確方法?

public static native void publishFeed(int score) /*-{ 
publishFeed(score); 
}-*/ 

回答

0

的IUnknown ::的QueryInterface在Java中

類對象是類層次結構的根。每個類都有Object作爲超類。所有對象,包括數組,都實現了這個類的方法。 Object :: getClass()方法返回'Class',它具有許多有用的功能來發現Java類本身的細節。雖然詳細的解釋超出了本文的範圍,但我想指出getInterfaces()方法,它可以動態發現由Java類實現的接口。

我還沒有嘗試從JavaScript中調用getClass()方法,因此無法評論它的可行性。但是使用基礎設施類型的小應用程序,這個功能可以很容易地提供給腳本代碼。

檢查此鏈接希望你得到你找什麼

http://www.codeproject.com/Articles/571/Java-to-JavaScript-Communication

3

GWT代碼(一般)在iframe中運行,所以JSNI代碼(window)的(全球)範圍是不一樣的作爲所謂的HTML主頁之一。那一個叫$wnd

public static native void publishFeed(int score) /*-{ 
    $wnd.publishFeed(score); 
}-*/; 
+1

工作就像一個魅力。感謝分享信息! –

+1

這不是什麼祕密。直接爲doc:「當從JSNI訪問瀏覽器的窗口和文檔對象時,必須分別將它們引用爲$ wnd和$ doc。你編譯的腳本運行在嵌套框架中,並且$ wnd和$ doc會自動初始化以正確引用主機頁面的窗口和文檔。「並且知道'window' ==全局作用域是JS 101。 –