从Activity类调用方法(React Native Android)
作者:互联网
是否有一个API来调用Activity类的方法?我需要在我的应用程序上调用finish()但在文档中找不到任何相关内容.
更具体地说,当我按下特定的TouchableHighlight时,我希望从index.android.jsx中完成()MainActivity.
[更新]
现在我正在从NativeModule中暴露一个finish()方法,但也许有更好的方法可以做到这一点.
解决方法:
我也没有看到内置的方法来执行此操作,使用NativeModule的方法也是我使用的方法.
但是,如果在构建ReactInstanceManager时调用setCurrentActivity,则可以从模块调用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();
标签:android,react-jsx,react-native 来源: https://codeday.me/bug/20190706/1398255.html