import {BackHandler,Platform} from 'react-native';

//注册
componentDidMount() {
    if (Platform.OS === 'android') {
        BackHandler.addEventListener('hardwareBackPress', this.onBackHandler);
    }
}

//移除
componentWillUnmount() {
    if (Platform.OS === 'android') {
        BackHandler.removeEventListener('hardwareBackPress', this.onBackHandler);
    }
}

onBackHandler = ()=>{
    if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {
        //最近2秒内按过back键,可以退出应用。
        BackHandler.exitApp()          
        return false;        
    }
    this.lastBackPressed = Date.now();
    ToastAndroid.show("再按一次退出应用", ToastAndroid.SHORT);
    return true;//默认行为
}

官网示例: https://reactnative.cn/docs/backhandler/

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐