在需要做监听的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 7.1 触摸事件代码跟踪
  2. ListView与Button的共存问题解决(点击事件)
  3. Android中点击按钮的事件处理实现步骤
  4. Android 之事件的分发和消费机制
  5. android事件分发机制总结
  6. Android 触屏事件处理_手势识别

随机推荐

  1. 高通android10.0默认赋予第三方apk权限
  2. Android(安卓)SQLite 数据库 java.lang.I
  3. Android多媒体扫描过程(Android Media Sca
  4. 对话框AlertDialog的使用
  5. android 禁止viewpager预加载
  6. Android(安卓)的系统属性(SystemProperti
  7. A20修改顶部状态栏 禁止跳转设置界面
  8. StagefrightPlayer&&AwesomePlayer 初步
  9. 再看Android 屏幕切换引起的生命周期变化
  10. Android(安卓)repo 出现error.GitError: