Przejdź do treści głównej
Wersja: 0.77

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