是否有api来调用Activity
类的方法?我需要在我的应用上拨打finish()
,但无法在文档中找到任何相关内容。
更具体地说,当我按下特定的finish()
时,我想从我的index.android.jsx中MainActivity
TouchableHighlight
。
[更新]
现在我从NativeModule中暴露了finish()
方法,但也许有更好的方法。
答案 0 :(得分:1)
我也没有看到内置方式来执行此操作,并且使用Transparent
的方法也是我使用的方法。
但是,如果您在构建NativeModule
时致电setCurrentActivity
,那么您可以从模块中致电ReactInstanceManager
,而不是通过getCurrentActivity
和ReactPackage
传递ReactModule
构造
<强> MyReactModule.java 强>
public class MyReactModule extends ReactContextBaseJavaModule {
public MyReactModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return getClass().getSimpleName();
}
@ReactMethod
public void finish() {
Activity activity = getCurrentActivity();
if (activity != null) {
activity.finish();
}
}
}
<强> MyReactPackage.java 强>
公共类MyReactPackage实现ReactPackage {
@Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
}
@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 MyReactModule(reactContext));
return modules;
}
}
ReactInstanceManager设置
mReactInstanceManager = ReactInstanceManager.builder()
.addPackage(new MyReactPackage())
.setCurrentActivity(this)
// other settings
.build();