fel*_*eno 5 android react-jsx react-native
是否有 api 可以从Activity类中调用方法?我需要调用finish()我的应用程序,但在文档中找不到任何相关内容。
更具体地讲,我想finish()的MainActivity从我的index.android.jsx,当特定TouchableHighlight被按下。
[更新]
现在我finish()从我的 NativeModule公开一个方法,但也许有更好的方法来做到这一点。
我也没有看到内置的方法来执行此操作,并且您使用的方法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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
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;
}
}
Run Code Online (Sandbox Code Playgroud)
ReactInstanceManager 设置
mReactInstanceManager = ReactInstanceManager.builder()
.addPackage(new MyReactPackage())
.setCurrentActivity(this)
// other settings
.build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3437 次 |
| 最近记录: |