这个需求主要是为了解决android端物理返回键的监听的。
我们使用BackAndroid组件来完成对android物理返回键的监听。
我们可以在Home组件中注册,一旦APP进入Home页面,就接管物理返回键的监听,我们只在Home组件渲染完成后来监听,在Home组件被卸载后移除对返回键的监听,在onBackAndroid中,我们先检查navigator的堆栈,如果堆栈中有组件存在,则pop到最顶层组件,如果组件为空,则采取在2s内连续按两次返回键退出App的策略。
先看封装的代码:
/**
* 所有组件的基类
* 实现android端物理返回键的监听
*/
import React, {Component} from 'react';
import {
BackAndroid,
Platform,
} from 'react-native';
export default class BaseComponent extends Component {
constructor(props) {
super(props);
}
componentWillMount() {
if (Platform.OS === 'android') {
BackHandler.addEventListener("back", this.onBackClicked);
}else {
}
}
componentWillUnmount() {
if (Platform.OS === 'android') {
BackHandler.removeEventListener("bac