2016-11-22 66 views
0

不明白如何structurize這個Java代碼打字稿工作(JavaScript的):的代碼片段,以打字稿

channel.join().receive("ok", new IMessageCallback() { 
    @Override 
    public void onMessage(Envelope envelope) { 
     System.out.println("JOINED with " + envelope.toString()); 
    } 
}); 

代碼在這裏找到:https://github.com/eoinsha/JavaPhoenixChannels

在想是這樣的:

var phoenix = (org as any).phoenixframework.channels; 
var callback = new phoenix.IMessageCallback({ 
    onMessage: function (arg) { 
     console.log('callback'); 
    } 
}); 

channel.join().receive("ok", callback); 

它編譯成功,沒有錯誤發生,但我沒有得到我的回調,當我加入該頻道。

任何洞見讚賞!

- UPDATE 原來我正確地做了,連接問題在其他地方撒謊,謝謝所有誰投入! :)

+0

@Weedoze用戶正在通過JavaScript/TypeScript API使用Java/Android庫,這在NativeScript中很常見 – pkanev

+1

@Weedoze使用NativeScript可以訪問Java庫並使用編組可以使用相同的庫編寫JavaScript代碼。您也可以對iOS的Objective-C API執行相同的操作。 –

回答

3

如果要實現Java接口,可以使用以下語法。

var clickListener = android.view.View.OnClickListener({ 
    onClick: function (view) { 
     // Do something on click 
    } 
}); 

您可以參考documentation article關於Android運行時間和數據轉換技術

2

我想補充尼克伊利耶夫的回答

正確的方式來擴展接口的問題是以下

var callback = new org.phoenixframework.channels.IMessageCallback({ 
    onMessage: function (arg) { 
     console.log('callback'); 
    } 
}); 

您需要指定類的全名,包括包+類名(org.phoenixframework.channels + IMessageCallback)

+0

您是否可以確認您是否正確地遵循了所有指示,直到附加回調?您還可以驗證連接是否確實與後端建立了關係? – pkanev