2017-11-20 10 views
0

できるだけ早いヘルプ。コールバック関数を使用して特定のインタフェースを実装する必要があるオブジェクトを受け入れるサードパーティのネイティブ関数への呼び出しを実装しようとしています。 Nativescript側でそのようなオブジェクトをどのように作成し、それをそのネイティブ関数にどのくらい渡すのですか?Nativescriptプラグイン - サードパーティのネイティブライブラリとの通信

Javaの例:

public class Logger { 
    public static void setListener(LogListener listener) { 
     // native code 
    } 
} 

public interface LogListener { 
    void onMessageLogged(LogMessage message); 
} 

答えて

1

だから、setListenerLogListenerに渡したいですか?

だろう活字体で

:返信用

const myLogListener = new change.packagename.LogListener({ 
    onMessageLogged: message => { 
    console.log(message); 
    } 
}); 

logger.setListener(myLogListener); 
+0

おかげでそれが動作するようには思えません。 LogListenerはクラスとしてではなく、Javaライブラリ内のインタフェースとして宣言されているので、 "new"キーワードを使用してインスタンス化しようとするとエラーが発生します。ですから、ここで本当に疑問に思うのは、Typescriptでクラスを作成してJavaライブラリに渡して、LogListenerインタフェースの実装としてそれを受け入れる方法です。 – lusocoding

+0

これは不思議です。このリスナーインターフェースの例を見てみましょう:https://github.com/EddyVerbruggen/nativescript-mapbox/blob/60845febd4dee237fe5f20ef54c52025a413f387/src/mapbox.android.ts#L264-L274 –

+0

クラスが作成されている途中でタイプミス。私はこの答えを正しいものとして設定します。ありがとう。 – lusocoding

関連する問題