1:新建react-native项目 将andorid部分导入到Androidstudio中
2:写一个事件发送的方法
代码如下:
private void sendEvent(ReactContext reactContext,
String eventName,
@Nullable WritableMap params) {
if (reactContext==null) {
Log.i(TAG, "reactContext==null");
}else{
reactContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit(eventName, params);
}
}
注意: 这里要使用到reactContext作为参数,但是在新版本react-native中新建的项目是继承自reactactivity
这样的public class MainActivity extends ReactActivity
ReactActivity 中有有这么一个变量 private @Nullable ReactInstanceManager mReactInstanceManager;但这是private的 外部无法访问
因此我们需要自己替代reactactivity,实现DefaultHardwareBackBtnHandler相关方法
否者会出现null异常
代码如下:
package com.wyq;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.PersistableBundle;
import android.provider.Settings;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.EditText;
import android.widget.Toast;
import com.facebook.common.logging.FLog;
import com.facebook.react.LifecycleState;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactRootView;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.shell.MainReactPackage;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler{
private static final Str