Si mon application React Native ne parvient pas à se connecter à son serveur, je montre une alerte avec un bouton OK. Si cela se produit, il est inutile que l'application continue à s'exécuter. J'aimerais donc la fermer lorsque l'utilisateur clique sur le bouton. Comment puis-je faire cela?
Je soupçonne que la clé est dans AppRegistry mais la documentation est un peu maigre.
Il n'y a pas de moyen spécifique pour réagir à cela aujourd'hui. Vous devrez accomplir cela du côté natal des choses.
De plus, développez-vous pour iOS? Apple a déclaré que les applications ne devraient pas se fermer elles-mêmes.
Pour Android, utilisez BackAndroid pour quitter l’application:
import React, {
BackAndroid,
} from 'react-native';
BackAndroid.exitApp();
Je réponds trop tard à la question, mais je pensais que la façon dont j'avais choisi pourrait aider quelqu'un, alors je réponds à cette question.
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;
}
Écrivez un module natif qui effectue les actions suivantes lorsqu'il est appelé:
IOS:
exit(9);
Android:
((YourApplication) self.getApplicationContext()).kill();
...MODIFIER...
Ou utilisez simplement celui que j'ai créé: https://www.npmjs.com/package/react-native-exit-app
Voici comment j'ai réalisé:
componentWillMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackButtonClick);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackButtonClick);
}
handleBackButtonClick() {
BackHandler.exitApp();
return true;
}
sur le terminal, vous pouvez appuyer sur
> ctrl+c
ou vous pouvez simplement tuer tous les nœuds
> killall node