LoginSignup
3
1

More than 5 years have passed since last update.

NativeScriptで作った自前クラスを特定のJavaパッケージにマッピングする

Posted at

JavaクラスをExtendした自前クラスをTypeScriptで定義し、それを指定の名前空間(パッケージ)のJavaクラスとして宣言する方法。あまり需要はないかもしれませんが、TypeScriptでのサンプルが公式でも不足しており、実装時に意外にハマったので、備忘です。

@JavaProxy("xxx.MyFirebaseInstanceIDService")
export class MyFirebaseInstanceIDService extends com.google.firebase.iid.FirebaseInstanceIdService {

    constructor(){
        super();
        return global.__native(this);
    }
}

@JavaProxy が良い仕事をしてくれます。
constructorの実装はNativeScript+TypeScriptでネイティブのクラスを継承したときのお約束。

なお、上のコードは自前でFirebaseのプッシュを実装しようとしたときの例です。このクラスをAndroidManifest.xmlのServiceに定義して呼び出すことはできましたが、もう一つの必須クラスである、FirebaseMessagingServiceを継承したクラスをインスタンス化するのが上手く行かず、断念しました。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1