来自Activity类的调用方法(React Native Android)
是否有api调用Activity
类的方法?我需要在我的应用程序上拨打finish()
,但无法在文档中找到任何相关内容。来自Activity类的调用方法(React Native Android)
更具体地说,我想要finish()
MainActivity
从我的index.android.jsx,当一个特定TouchableHighlight
被按下时。
[更新]
现在我是从我的NativeModule暴露finish()
方法,但也许有更好的方法来做到这一点。
我没有看到一个内置的方式做这一点,并使用你的方法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();
嘿,谢谢你,@mpkuth。不幸的是(幸运的是),我不再使用React Native,但我相信你的答案对其他人有用。 – felipebueno
我必须为完成方法 –
hello @mpkuth使用不同的名称,您能否帮助我找到一个想法我该如何做相反的事情,我的意思是,我想从本机java代码打开反应原生组件 –
您可以在活动类中调用finish()以销毁活动。你在问什么? –
不,我想从我的index.android.jsx上的React Native组件调用它。 – felipebueno
您是否发现此解决方案为@buenoFelipe我有同样的问题 –