我找不到任何程序来通过React native将用户正在做的事情从应用程序中传输出去。
我正在创建自己的插件
目标是将流从Java发送到javascript,然后通过socket.io将其发送到外部套接字服务器
这是我的Java类,要求授权和流
import android.hardware.display.DisplayManager;
import android.util.DisplayMetrics;
import android.app.Activity;
import android.content.Intent;
import android.media.projection.MediaProjectionManager;
import android.media.projection.MediaProjection;
import android.media.MediaRecorder;
import android.util.Log;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.BaseActivityEventListener;
import static android.content.Context.MEDIA_PROJECTION_SERVICE;
public class ScreenMirroringModule extends ReactContextBaseJavaModule {
private static final int SCREEN_SHARE_REQUEST = 4242;
private static final String S_MIRROR_CANCELLED = "S_MIRROR_CANCELLED";
private Promise sMirrorPromise;
private MediaProjectionManager mMediaProjectionManager;
private MediaStreamer mMediaStreamer = new MediaStreamer();
private final ActivityEventListener mActivityEventListener = new BaseActivityEventListener() {
@Override
public void onActivityResult(Activity …Run Code Online (Sandbox Code Playgroud) 我正在编写一个包含3个viewControllers的应用程序,包含在MainViewController中.其中一个是通过故事板控制并显示广告.另外两个viewControllers正在显示信息.根据按下的菜单按钮和要呈现的viewController,应用程序确定要更改的viewController.
到目前为止,除非选择了任何 textField,否则一切都运行良好.这会导致显示错误.实例是包含textField的viewController,也是错误中命名的UIViewController.此外,实例不是零.我在下面放了一个断点:textFieldShouldBeginEditing:
并且在崩溃发生之前调用此方法.该应用程序是通用的,并且不会在iPhone版本上崩溃,它使用相同的设置,除了它只显示广告和另一个viewController.如果您需要查看更多代码或有任何想法,请告诉我们.我无法在_keyboard任何地方找到选择器,也不知道该怎么做.
我试图用最少的代码创建一个新项目来显示错误,但新项目都工作正常,所以问题是没有太多viewControllers一次可见.我也知道我的转换代码工作正常,因为它适用于新项目.我编写的viewControllers也不是问题,因为完全相同的viewController用于应用程序的iPhone部分以及仅在新的iPad测试项目中,并且问题根本没有显示在它们上面.
[编辑 - 删除代码,我测试了一个新项目中的代码,它工作正常]
[edit2 - 添加代码和说明]
@implementation FSMainiPadViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.leftView = [[UIView alloc] init];
self.rightView = [[UIView alloc] init];
if (!self.testVC) {
self.testVC = [[FSTestViewController alloc] initWithNibName:nil bundle:nil];
}
self.inputViewController = self.testVC;
self.resultsVC = [[FSResultsTableViewController alloc] initWithNibName:nil bundle:nil];
self.dataViewController = self.resultsVC;
self.leftView.frame = CGRectMake(0, VIEWFRAMEOFFSET/2, self.view.frame.size.width/2 , self.view.frame.size.height - IPADBANNERHEIGHT - VIEWFRAMEOFFSET/2 - MENUHEIGHT);
self.rightView.frame = CGRectMake((self.view.frame.size.width)/2, VIEWFRAMEOFFSET/2, self.view.frame.size.width/2, self.view.frame.size.height - IPADBANNERHEIGHT - VIEWFRAMEOFFSET/2 - MENUHEIGHT);
[self …Run Code Online (Sandbox Code Playgroud)