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

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

  • 相关阅读:
    ajax跨域
    抽奖概率计算
    应用版本
    empty
    java线程池原理
    java队列
    jquery选择器项目实例分析
    jquery操作dom
    40款非常棒的 jQuery 插件和制作教程(系列一)
    vijosP1046 观光旅游(最小环)
  • 原文地址:https://www.cnblogs.com/wukong1688/p/10959609.html
Copyright © 2011-2022 走看看