【React Native】文件翻譯閱讀紀錄 - APIs - BackHandler
Facebook Open Source React Native |
BackHandler
檢測硬件按鈕按下以進行後退導航。
Android:檢測硬件後退按鈕,如果沒有偵聽器或者沒有任何偵聽器返回true,則以編程方式調用默認後退按鈕功能以退出應用程序。
tvOS:檢測按下電視遙控器上的菜單按鈕。 (仍有待實現:如果沒有偵聽器或者沒有任何偵聽器返回true,則以編程方式禁用菜單按鈕處理功能以退出應用程序。)
iOS:不適用。
事件訂閱以相反的順序調用(即,首先是最後註冊的訂閱),如果一個訂閱返回true,則不會調用先前註冊的訂閱。
例:
Android:檢測硬件後退按鈕,如果沒有偵聽器或者沒有任何偵聽器返回true,則以編程方式調用默認後退按鈕功能以退出應用程序。
tvOS:檢測按下電視遙控器上的菜單按鈕。 (仍有待實現:如果沒有偵聽器或者沒有任何偵聽器返回true,則以編程方式禁用菜單按鈕處理功能以退出應用程序。)
iOS:不適用。
事件訂閱以相反的順序調用(即,首先是最後註冊的訂閱),如果一個訂閱返回true,則不會調用先前註冊的訂閱。
例:
BackHandler.addEventListener('hardwareBackPress', function() {
// this.onMainScreen and this.goBack are just examples, you need to use your own implementation here
// Typically you would use the navigator here to go to the last state.
if (!this.onMainScreen()) {
this.goBack();
return true;
}
return false;
});
生命週期示例:
componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
}
handleBackPress = () => {
this.goBack(); // works best when the goBack is async
return true;
}
生命週期替代:
componentDidMount() {
this.backHandler = BackHandler.addEventListener('hardwareBackPress', () => {
this.goBack(); // works best when the goBack is async
return true;
});
}
componentWillUnmount() {
this.backHandler.remove();
}
Methods
參考
Methods
exitApp()
static exitApp()
addEventListener()
static addEventListener(eventName, handler)
removeEventListener()
static removeEventListener(eventName, handler)
0 意見