React Native WebView处理android硬件按钮

时间:2017-12-25 14:27:46

标签: android react-native webview

我有一个应用程序(完全是Webview),我正在尝试处理Android硬件按钮,例如从第二页返回到第一页。我现在的问题是该按钮不再关闭应用程序,我不知道该怎么办。这是我的代码:

export default class App extends Component {
  constructor(props) {
  super(props)
    this.state={

     };

this.handleBackButtonClick = this.handleBackButtonClick.bind(this);
}

componentWillMount() {
BackHandler.addEventListener('hardwareBackPress',this.handleBackButtonClick);
}
componentWillUnmount() {    BackHandler.removeEventListener('hardwareBackPress',this.handleBackButtonClick);
}

onNavigationStateChange(navState){
  console.log(JSON.stringify(navState));
  canGoBack = navState.url == initialUrl && !navState.loading
}


handleBackButtonClick() {
     this.refs[WEBVIEW_REF].goBack();
     return true;
} 

1 个答案:

答案 0 :(得分:0)

handleBackButtonClick的返回值决定了应用是否继续运行。

目前,您总是返回true。相反,您可以检查当前导航状态是否要关闭应用程序,并相应地返回false

handleBackButtonClick() {
    const canGoBack = someCalculation();
    if(canGoBack)
        this.refs[WEBVIEW_REF].goBack();
    }
    return canGoBack;
}