React Native 适配Android物理返回键,实现连续两次点击退出
16lz
2021-01-24
一直使用iPhone作为测试机开发,提交给测试同事Android版本后发现很多适配问题,其中一个非常明显的是,弹出一个modal后,点击Android的返回键,modal不会消失,直接navigation goBack了
在Android端需要处理物理按键事件 , 另外可以实现连续两次点击退出APP的功能
componentDidMount(): void { //挂载完,添加返回按键的监听 BackHandler.addEventListener('hardwareBackPress', this.handleBackPress); } componentWillUnmount(): void { //页面销毁时取消监听,防止内存泄漏 BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress); } handleBackPress = () => { if (this.props.navigation.isFocused()) {
//判断modal是否正在显示
if(this.state.modalVisible){
this.setState({modalVisible:false});
return true;
}
if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) { //最近2秒内按过back键,表示用户想退出应用。 BackHandler.exitApp(); return true; } this.lastBackPressed = Date.now(); ToastAndroid.show('再按一次退出应用', ToastAndroid.SHORT); //提示再次按返回触发 return true; } };
更多相关文章
- Android异步加载图片中UI是否被阻塞的测试
- android 单元测试方法 类继承 Instrumentation
- [Android] 基于 Linux 命令行构建 Android(安卓)应用(五):Ant 构建
- android按键驱动开发实例1(修改一个按键)
- 关于Android直接连MySQL获取数据的真机测试的一些坑
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
- Activity生命周期+android测试类(2)
- android键盘输入读取
- android 触屏反馈原理