Przejdź do treści głównej
Wersja: Następna

BackHandler

Nieoficjalne Tłumaczenie Beta

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, BackHandler nie opublikuje żadnych zdarzeń (zobacz dokumentację Modal).

Wzorzec użycia

tsx
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()

tsx
static addEventListener(
eventName: BackPressEventName,
handler: () => boolean | null | undefined,
): NativeEventSubscription;

exitApp()

tsx
static exitApp();