Реагируйте на встроенную навигацию V2: откройте оверлей на AppState.Background и обновите снимок приложения (iOS) - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь «заблокировать» приложение после того, как пользователь закрыл его - запрашивая TouchID / FaceID или код при повторном открытии. Получилось нормально работать с чем-то вроде:

const onAppStateChange = (nextAppState: string) => {
  if (nextAppState === 'background') {
    Navigation.showOverlay({
      component: {
        name: 'overlayName',
      },
    });
  }
};

AppState.addEventListener('change', onAppStateChange);

Единственная проблема, с которой я столкнулся, заключается в том, что моментальный снимок приложения (изображение, отображаемое в многозадачном представлении на iOS) не содержит наложения, поскольку он был создан до добавления наложения.

Найдены ссылки на [view snapshotViewAfterScreenUpdates:YES]; здесь: https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW27

Но обработчик событий iOS для UIApplicationDidEnterBackgroundNotification также запускается, прежде чем я могу добавить оверлей в RN-land. Очень хотелось бы справиться с этим (добавив оверлей) на стороне JS.

Кроме того, в настоящее время я смотрю только на iOS, но было бы неплохо решение для Android.

...