BackHandler
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
API BackHandler wykrywa naciśnięcia sprzętowego przycisku wstecz, umożliwia rejestrację słuchaczy zdarzeń dla systemowej akcji "wstecz" oraz pozwala kontrolować reakcję aplikacji. Działa wyłącznie na platformie Android.
Subskrypcje zdarzeń są wywoływane w odwrotnej kolejności (tzn. ostatnio zarejestrowana subskrypcja jest wywoływana jako pierwsza).
-
Jeśli jakakolwiek subskrypcja zwróci true, wcześniej zarejestrowane subskrypcje nie zostaną wywołane.
-
Jeśli żadna subskrypcja nie zwróci true lub nie ma zarejestrowanych subskrypcji, system programowo wywoła domyślną funkcję przycisku wstecz, aby zamknąć aplikację.
Uwaga dla użytkowników modali: Jeśli twoja aplikacja wyświetla otwarty
Modal,BackHandlernie opublikuje żadnych zdarzeń (zobacz dokumentacjęModal).
Wzorzec użycia
const subscription = 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();
/**
* When true is returned the event will not be bubbled up
* & no other back action will execute
*/
return true;
}
/**
* Returning false will let the event to bubble up & let other event listeners
* or the system's default back action to be executed.
*/
return false;
},
);
// Unsubscribe the listener on unmount
subscription.remove();
Przykład
Poniższy przykład implementuje scenariusz potwierdzania wyjścia z aplikacji:
BackHandler.addEventListener tworzy słuchacz zdarzeń i zwraca obiekt NativeEventSubscription, który powinien zostać usunięty metodą NativeEventSubscription.remove.
Użycie z React Navigation
Jeśli używasz React Navigation do nawigacji między ekranami, możesz skorzystać z ich przewodnika: Niestandardowe zachowanie przycisku wstecz na Androidzie
Hook BackHandlera
React Native Hooks udostępnia poręczny hook useBackHandler, który upraszcza konfigurację słuchaczy zdarzeń.
Dokumentacja
Metody
addEventListener()
static addEventListener(
eventName: BackPressEventName,
handler: () => boolean | null | undefined,
): NativeEventSubscription;
exitApp()
static exitApp();