第一步
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") <--------重点 }