import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.module.annotations.ReactModule;
@ReactModule(name = MyNativeModuleAndroidExample.MODULE_NAME)
public class MyNativeModuleAndroidExample extends ReactContextBaseJavaModule {
public static final String MODULE_NAME = "MyNativeModuleAndroidExample";
private static final String DURATION_SHORT_KEY = "short";
private static final String DURATION_LONG_KEY = "long";
public MyNativeModuleAndroidExample(ReactApplicationContext context) {
super(context);
}
@NonNull
@Override
public String getName() {
return MODULE_NAME;
}
@Nullable
@Override
public Map<String, Object> getConstants() {
final Map<String, Object> constants = new HashMap<>();
constants.put(DURATION_SHORT_KEY, Toast.LENGTH_SHORT);
constants.put(DURATION_LONG_KEY, Toast.LENGTH_LONG);
return constants;
}
@ReactMethod
public void showToast(String message, int duration) {
Toast.makeText(getReactApplicationContext(), message, duration).show();
}
}
这段代码演示了如何在Android原生代码中创建一个自定义的React模块,该模块提供一个方法showToast
来显示一个Toast消息。它还演示了如何使用getConstants
方法来暴露一些常量,这些常量可以在JavaScript中使用。这是集成React Native到Android项目中自定义功能的一个基本例子。