zoukankan      html  css  js  c++  java
  • [RN] React Native 再按一次退出

    实现 React Native 再按一次退出

    单页面:

    ... 
    componentWillMount() {
        BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid)
    }
    
    lastBackPressed = 0
    onBackAndroid = () => {
        if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {
            BackHandler.exitApp()
            return false
        }
        this.lastBackPressed = Date.now()
        ToastAndroid.show('再按一次退出应用', ToastAndroid.SHORT)
        return true
    }
    
    componentWillUnmount() {
        BackHandler.removeEventListener('hardwareBackPress', this.onBackAndroid)
    }
    ...

    包含在导航器中:

    let lastBackPressed = 0;
    const defaultStateAction = RootNav.router.getStateForAction;
    RootNav.router.getStateForAction = (action, state) => {
        if (DEVICE.android && state && action.type === NavigationActions.BACK && state.routes.length === 1) {
            if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {
                BackHandler.exitApp();
                return false;
            }
            this.lastBackPressed = Date.now();
            ToastUtil.showToast("再按一次退出应用");
            const routes = [...state.routes];
            return {
                ...state,
                ...state.routes,
                index: routes.length - 1,
            };
        } else {
            return defaultStateAction(action, state);
        }
    };

    本博客地址: wukong1688

    本文原文地址:https://www.cnblogs.com/wukong1688/p/10959609.html

    转载请著名出处!谢谢~~

  • 相关阅读:
    动态数组的实现案例
    随机验证码实现案例
    wince下的CPU和内存占用率计算
    RT-Thread--时间管理
    RT-Thread--线程管理
    RT-Thread--内核基础
    RT-Thread--简介
    Git基本操作
    STM32F103/429串口IAP+Ymodem升级
    KEIL_MDK生成Bin文件
  • 原文地址:https://www.cnblogs.com/wukong1688/p/10959609.html
Copyright © 2011-2022 走看看