編寫自定義插件需要繼承ReactContextBaseJavaModule和實現(xiàn)ReactPackage接口, 具體實現(xiàn)步驟如下:
1. 繼承ReactContextBaseJavaModule接口
public class IntentModule extends ReactContextBaseJavaModule
2. 重寫 getName方法,暴露給JS端調(diào)用名
@Override
public String getName() {
return "IntentModule";
}
3. 給暴露給JS的方法添加 @ReactMethod 注解,且方法的返回值只能是void
@ReactMethod
public void backActivity(int count) {
if (count > 0) {
try {
Activity currentActivity = getCurrentActivity();
currentActivity.finish();
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.實現(xiàn)ReactPackage接口
public class IntentPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
return Arrays.<NativeModule>asList(
new IntentModule(reactContext)
);
}
@Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
}
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
}
5.在Application中注冊IntentPackage
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new IntentPackage()
);
}
6.JavaScript調(diào)用IntentModule的backActivity方法
NativeModules.IntentModule.backActivity();