zoukankan      html  css  js  c++  java
  • react native Android返回键监听BackHandler

    根据文档,BackHandler可以监听Android设备的返回键,在iOS设备不起作用。

    BackHandler有三个方法:

    exitAPP(),

    addEventListener(eventName, handler),

    removeEventListener(eventName, handler).

    运用BackHandler可以实现按下返回键时不退出APP,而只是返回导航栈的上一页。

    在定义导航栈navigator的地方添加代码:

    添加事件监听函数:

       componentWillMount() {
            if (Platform.OS === 'android') {
                BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
            }
        }
        componentWillUnmount() {
            if (Platform.OS === 'android') {
                BackHandler.removeEventListener('hardwareBackPress', this.onBackAndroid);
            }
        }

    定义监听函数:

        onBackAndroid = () => {
            const routers = nav.getCurrentRoutes();
            if (routers.length > 1) {
                nav.pop();
                return true;
            }else{
                let time = new Date();
                this.lastBackPressed = this.thisBackPressed;
                this.thisBackPressed = time.getTime();
    
                if (this.lastBackPressed && this.lastBackPressed + 2000 >= this.thisBackPressed) {
                    //最近2秒内按过back键,可以退出应用。
                    return false;
                }
                ToastAndroid.show('再按一次退出应用', ToastAndroid.SHORT);
                return true;
            }
        };
  • 相关阅读:
    java8知识总结_2.方法引用
    Shell三剑客_1.grep
    java8知识总结_1.Lambda表达式
    javascript中的设计模式
    javascript入门学习
    css3新特性
    Html5新增了什么
    什么是Node.js
    vue项目搭建
    Git使用
  • 原文地址:https://www.cnblogs.com/yulian/p/8676577.html
Copyright © 2011-2022 走看看