====== native module ====== react-nativeでAndroidのAPIを使う [[https://qiita.com/uryyyyyyy/items/664bafdc852d3699f577|react-nativeでAndroidのAPIを扱う(Native Modules編)]] [[https://facebook.github.io/react-native/docs/native-modules-android|Native Modules]] [[https://github.com/voximplant/react-native-foreground-service|voximplant/react-native-foreground-service]] ===== 1.ReactContextBaseJavaModuleを継承したクラスを作る ===== * getNameをオーバーライドする。JSコードの中でNativeモジュールを呼ぶ時の識別子となる。 * getConstantsをオーバーライドすると、パラメーターを渡すことができる。 * @ReactMethodアノテーションをつけてメソッドを定義するとJSから呼び出せる。 ===== 2.ReactPackageを継承したクラスを作る ===== * createNativeModulesをオーバーライドして、1で作成したクラスを登録する。 ===== 3.MainApplicationに組み込み ===== * getPackagesに2で作成したパッケージクラスを登録する。 ===== 4.JS側にラッパークラスを用意する ===== import {NativeModules} from 'react-native'; export default NativeModules.[1.のgetName]; ===== 5.JSから呼び出す ===== ===== その他.Android側でログの出力 ===== import android.util.Log; Log.i("INFO", "processing service");