莫道桑榆晚,为霞尚满天。这篇文章主要讲述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
的返回值决定了应用程序是否继续运行。【React Native WebView处理android硬件按钮】目前,您总是返回
true
。相反,您可以检查当前导航状态是否要关闭应用程序,并相应地返回false
。handleBackButtonClick() {
const canGoBack = someCalculation();
if(canGoBack)
this.refs[WEBVIEW_REF].goBack();
}
return canGoBack;
}
推荐阅读
- 在WebView Android应用程序中推送通知
- 当URL相似时,Android WebView canGoBack()返回false
- 创建新的Windows Phone App项目(“对象引用未设置为对象的实例”错误(WP8 SDK,VS2012))
- 为商店测试Win Phone 8 App时API错误
- 如何将PayPal sdk与Gradle Android集成
- 无法在Android Studio中构建Release APK
- Android(Paypal Express结帐集成无效)
- PayPal此处Android SDK错误 - BadConfiguration(无法继续使用此商家帐户)
- 'Pods-App'目标具有传递依赖关系,包括在swift框架中使用GTM时的静态二进制文件