Ответ 1
Сегодня нет специального способа реагирования. Вы должны выполнить это с той стороны вещей.
Кроме того, вы разрабатываете для iOS? Apple заявила, что приложения не должны закрываться.
Если приложение React Native не сможет подключиться к его серверу, я покажу предупреждение с кнопкой OK. Если это произойдет, нет смысла в приложении продолжать работать, поэтому я хотел бы закрыть его при нажатии кнопки. Как это сделать?
Я подозреваю, что ключ находится в AppRegistry, но документы немного скудны.
Сегодня нет специального способа реагирования. Вы должны выполнить это с той стороны вещей.
Кроме того, вы разрабатываете для iOS? Apple заявила, что приложения не должны закрываться.
Для Android используйте BackAndroid для выхода из приложения:
import React, {
BackAndroid,
} from 'react-native';
BackAndroid.exitApp();
Я отвечаю на вопрос слишком поздно, но я подумал, что выбранный мной способ может кому-то помочь, поэтому я отвечаю на этот вопрос.
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;
}
Напишите собственный модуль, который выполняет следующие действия при вызове:
IOS:
exit(9);
ANDROID:
((YourApplication) self.getApplicationContext()).kill();
...РЕДАКТИРОВАТЬ...
Или просто используйте тот, который я создал: https://www.npmjs.com/package/react-native-exit-app
Вот как я достиг:
componentWillMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackButtonClick);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackButtonClick);
}
handleBackButtonClick() {
BackHandler.exitApp();
return true;
}
Этот модуль npm помог мне решить ту же проблему - Reaction-native-exit-app
import RNExitApp from 'react-native-exit-app';
...
RNExitApp.exitApp();
...
на терминале вы можете нажать
> ctrl+c
или вы можете просто убить весь узел
> killall node