ReactNative自定义原生模块 安卓

第一步

 Android Studio打开项目 

选择 File->New->New Module

第二步 编写模块

继承ReactContextBaseJavaModule

public class RCTStatusbarPropsModule extends ReactContextBaseJavaModule{
    private ReactApplicationContext context;
    public RCTStatusbarPropsModule(ReactApplicationContext reactContext){
        super(reactContext);
        context = reactContext;
    }
    返回名字给js调用
    @Override
    public String getName() {return "StatusbarProps";}

返回方法给js调用
@ReactMethod public void getHeight(Callback callback){ int result = 0 ; int resourceId = context .getResources().getIdentifier( "status_bar_height" , "dimen" , "android" ); if (resourceId > 0 ) { result = context .getResources().getDimensionPixelSize(resourceId); } callback.invoke(result); }}

第三步 注册模块

public class RCTStatusbarPropsPackage implements ReactPackage {
    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        List<NativeModule> modules = new ArrayList<>();
        modules.add(new RCTStatusbarPropsModule(reactContext));<--------重点
        return modules;
    }
}
Mapplication.java 
@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
          new RCTStatusbarPropsPackage() <--------重点

  );
}
 
 
settings.gradle
include ":react-native-statusbar-props"
project(":react-native-statusbar-props").projectDir = new File(rootProject.projectDir,"../node_modules/react-native-statusbar-props/android")

build.gradle
dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile project(":react-native-statusbar-props") <--------重点

}

猜你喜欢

转载自blog.csdn.net/gaokaikai1996/article/details/80900001