React Native back物理返回键

1.注册

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

 

2.移除

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

 

3.Back方法

onBackAndroid = () => {
    const navigator = this.props.navigator;
    const routers = navigator.getCurrentRoutes();
    console.log('当前路由长度:' + routers.length);
    if (routers.length > 2) {
      navigator.pop();
      return true;//接管默认行为
    } else {

      //到了主页了
      if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {
        //最近2秒内按过back键,可以退出应用。
        return false;
      }
      this.lastBackPressed = Date.now();
      ToastAndroid.show("再按一次退出应用", ToastAndroid.SHORT);
      return true;
    }
    // return false;//默认行为

  };

 

posted @ 2017-06-09 10:57  我要养仓鼠  阅读(2153)  评论(0)    收藏  举报