React Native WebView处理android硬件按钮
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native WebView处理android硬件按钮相关的知识,希望对你有一定的参考价值。
我有一个应用程序(完全是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;
}
答案
handleBackButtonClick
的返回值决定了应用程序是否继续运行。
目前,您总是返回true
。相反,您可以检查当前导航状态是否要关闭应用程序,并相应地返回false
。
handleBackButtonClick() {
const canGoBack = someCalculation();
if(canGoBack)
this.refs[WEBVIEW_REF].goBack();
}
return canGoBack;
}
以上是关于React Native WebView处理android硬件按钮的主要内容,如果未能解决你的问题,请参考以下文章
在 React Native 应用程序中调试 WebView
如何在 appState 更改时重新加载 react-native-webview 内容
强制 React Native Web View 忽略 webview 的缓存版本
React Native 问题:WebView 已从 React Native 中移除