import { BackHandler, ToastAndroid } from "react-native"
import { useNavigation } from "@react-navigation/native"
const navigation = useNavigation()
let lastBackPressed = 0
useEffect(() => {
const backAction = () => {
const navigationRoutes = navigation.dangerouslyGetState().routes
if (navigationRoutes.length === 1 && navigationRoutes[0]['name'] === 'home') {
if (lastBackPressed && lastBackPressed + 2000 >= Date.now()) {
BackHandler.exitApp();//直接退出APP
}else{
lastBackPressed = Date.now()
ToastAndroid.show('再按一次退出', 1000)
}
} else {
navigation.goBack()
}
return true
}
const backHandler = BackHandler.addEventListener(
"hardwareBackPress",
backAction
);
return () => backHandler.remove();
}, [])
React Native 再按一次退出
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- app首页切换时,保持页面状态,使用IndexedStack实现 参考Flutter 三种方式实现页面切换后保持原...