我试图弥合Android屏幕保持React Native的功能.我想我可以用一个简单的模块做到这一点,但是我不知道如何从所述模块访问当前的Android Activity.
我需要Activity引用,所以我可以调用.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);它
我尝试通过像这样的方式获取活动((Activity)getReactApplicationContext().getBaseContext()),但是这会抛出"无法转换为Android.app.Activity"错误
我需要在React-native中显示一个Activity(Native android,Java).我知道有几次被问过,但没有人帮我.我没有找到任何关于如何在React-Native中调用/打开活动的教程或文档.放置活动的位置以及如何将其注册/添加到项目中.
有没有任何教程或示例代码?
我正在使用react-native-camera,当我从RN运行它时,它显示了来自rn-camera的视图,我查看了它的源代码,但它没有Activity.
如果您可以确定哪些模块的react-native正在使用活动,那么它也可以提供帮助.(显示反应原生的android活动).
有一些关于如何在现有的android项目中添加本机的文档,但是我找不到任何关于如何从android导入活动的指南.
我非常感谢你的帮助.
关于这个问题,我一直在尝试通过Android中的本机模块来完成。
我已经.../java/com/myproject/multiplecamerastream按照React Native ToastModule的示例声明了我的模块(此处的功能并不重要):
public class MultipleCameraStreamModule extends ReactContextBaseJavaModule {
private static final String CAMERA_FRONT = "SHORT";
private static final String CAMERA_BACK = "LONG";
public MultipleCameraStreamModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return "MultipleCameraStream";
}
@Override
public Map<String, Object> getConstants() {
final Map<String, Object> constants = new HashMap<>();
constants.put(CAMERA_FRONT, Toast.LENGTH_SHORT);
constants.put(CAMERA_BACK, Toast.LENGTH_LONG);
return constants;
}
@ReactMethod
public void show(String message, int duration) {
Toast.makeText(getReactApplicationContext(), message, duration).show();
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我的模块包装器:
public class …Run Code Online (Sandbox Code Playgroud) java android react-native native-module react-native-native-module