在需要做监听的js中添加

    componentWillMount() {        if (Platform.OS === 'android') {            BackHandler.addEventListener('hardwareBackPress', this.onBackHandler);        }    }    componentWillUnmount() {        if (Platform.OS === 'android') {            BackHandler.removeEventListener('hardwareBackPress', this.onBackHandler);        }    }        onBackHandler = () => {        // this.onMainScreen and this.goBack are just examples, you need to use your own implementation here        // Typically you would use the navigator here to go to the last state.        if (!this.onMainScreen()) {            this.goBack();            return true;        }        return false;    };

RN的容器Activity实现DefaultHardwareBackBtnHandler接口

    public class XXXActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {        //...        private ReactInstanceManager mReactInstanceManager;            @Override        public void invokeDefaultOnBackPressed() {            if (mReactInstanceManager != null) {                mReactInstanceManager.onBackPressed();            } else {                super.onBackPressed();            }        }        //...    }

RN的容器为Fragment时,DefaultHardwareBackBtnHandler没起作用

这时我们需要在该Fragment中添加接收返回事件的代码

    public boolean onKeyUp(int keyCode, KeyEvent event) {        if (mReactInstanceManager != null) {            switch (keyCode) {                //...                case KeyEvent.KEYCODE_BACK: {                    mReactInstanceManager.onBackPressed();                    return true;                }            }        }        return false;    }

并且在Activity中向该Fragment注入onkeyUp事件

    @Override    public boolean onKeyUp(int keyCode, KeyEvent event) {        return fragment.onKeyUp(keyCode, event) || super.onKeyUp(keyCode, event);    }

更多相关文章

  1. android activity FLAG_ACTIVITY_CLEAR_TASK 跳转出现短暂的白屏
  2. 丰富多彩的Android(安卓)onTouch事件
  3. 自定义android模块不编译的问题
  4. Android(安卓)屏幕滑动事件
  5. Android(安卓)7.1 触摸事件代码跟踪
  6. android 自定义 view
  7. ListView与Button的共存问题解决(点击事件)
  8. Android(安卓)onTouch事件
  9. Button简单实例1

随机推荐

  1. Android(安卓)获取系统时间
  2. 进度条ProgressBar
  3. Android(安卓)网页无法打开 net:ERR_UNKN
  4. android:实现退出确认框对话
  5. Android(安卓)拼音帮助类
  6. android中读取assets中的文件
  7. android Intent的一些用法
  8. android Intent打开各种类型文件(PDF、wo
  9. 下载APP(判断Ios或Android)
  10. Android(安卓)dependency has different