實現 React Native 再按一次退出html
單頁面:android
... 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) } ...
包含在導航器中:this
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); } };
本博客地址: wukong1688spa
本文原文地址:http://www.javashuo.com/article/p-sjcdbttz-do.htmlcode
轉載請著名出處!謝謝~~component