Spec-Zone.ru › React Native

Обработчик Назад

API Backhandler обнаруживает нажатия аппаратных кнопок для навигации назад, позволяет регистрировать обработчики событий для системного действия назад и управлять тем, как ваше приложение реагирует. Он доступен только для Android.

Подписки на события вызываются в обратном порядке (т.е. последняя зарегистрированная подписка вызывается первой).

  • Если одна подписка возвращает true, тогда подписки, зарегистрированные ранее, не будут вызваны.
  • Если ни одна подписка не возвращает true или они не зарегистрированы, приложение программно вызывает стандартную функциональность кнопки назад, чтобы выйти из приложения.

Предупреждение для модальных элементов: Если ваше приложение отображает открытое Modal, BackHandler не будет публиковать никаких событий (см. Modal документацию).

Шаблон

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

Следующий пример реализует сценарий, в котором вы подтверждаете, хочет ли пользователь выйти из приложения:

  • Функциональный компонент
  • Компонент класса

BackHandler.addEventListener создаёт обработчик событий и возвращает объект NativeEventSubscription, который следует очистить с помощью метода NativeEventSubscription.remove.

Кроме того, BackHandler.removeEventListener также может использоваться для очистки обработчика событий. Убедитесь, что обратный вызов содержит ссылку на ту же функцию, что и в вызове addEventListener, как показано в следующем примере ﹣

  • Функциональный компонент
  • Компонент класса

Использование с React Navigation

Если вы используете React Navigation для навигации по разным экранам, вы можете следовать их руководству по Настраиваемому поведению кнопки назад на Android

Хук Backhandler

Хук React Native Hooks имеет удобный useBackHandler хук, который упростит процесс настройки обработчиков событий.

Справочник

Методы

addEventListener()

static addEventListener(eventName, handler)

exitApp()

static exitApp()

removeEventListener()

static removeEventListener(eventName, handler)

© 2022 Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://reactnative.dev/docs/backhandler

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API