Как выйти из/закрыть приложение React Native?

Если приложение React Native не сможет подключиться к его серверу, я покажу предупреждение с кнопкой OK. Если это произойдет, нет смысла в приложении продолжать работать, поэтому я хотел бы закрыть его при нажатии кнопки. Как это сделать?

Я подозреваю, что ключ находится в AppRegistry, но документы немного скудны.

Ответы

Ответ 1

Сегодня нет специального способа реагирования. Вы должны выполнить это с той стороны вещей.

Кроме того, вы разрабатываете для iOS? Apple заявила, что приложения не должны закрываться.

Ответ 2

Для Android используйте BackAndroid для выхода из приложения:

import React, {
    BackAndroid,
} from 'react-native';

BackAndroid.exitApp();

Ответ 3

Я отвечаю на вопрос слишком поздно, но я подумал, что выбранный мной способ может кому-то помочь, поэтому я отвечаю на этот вопрос.

componentWillMount() {
   BackHandler.addEventListener('hardwareBackPress', this.backPressed);
}

componentWillUnmount() {
   BackHandler.removeEventListener('hardwareBackPress', this.backPressed);
}

backPressed = () => {
  Alert.alert(
    'Exit App',
    'Do you want to exit?',
    [
      {text: 'No', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
      {text: 'Yes', onPress: () => BackHandler.exitApp()},
    ],
    { cancelable: false });
    return true;
}

Ответ 4

Напишите собственный модуль, который выполняет следующие действия при вызове:

IOS:

exit(9);

ANDROID:

((YourApplication) self.getApplicationContext()).kill();

...РЕДАКТИРОВАТЬ...

Или просто используйте тот, который я создал: https://www.npmjs.com/package/react-native-exit-app

Ответ 5

Вот как я достиг:

  componentWillMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackButtonClick);
  }
  componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackButtonClick);
  }
  handleBackButtonClick() {
    BackHandler.exitApp();
    return true;
  }

Ответ 6

Этот модуль npm помог мне решить ту же проблему - Reaction-native-exit-app

import RNExitApp from 'react-native-exit-app';
...
RNExitApp.exitApp();
...

Ответ 7

на терминале вы можете нажать

> ctrl+c

или вы можете просто убить весь узел

> killall node