我如何 exit/shut 关闭 React Native 应用程序?

How do I exit/shut down a React Native app?

如果我的 React Native 应用程序无法连接到其后端,我会显示带有确定按钮的警报。如果发生这种情况,应用程序继续 运行 就没有意义了,所以我想在单击按钮时将其关闭。我该怎么做?

我怀疑密钥在 AppRegistry 中,但文档有点不足。

今天没有 react-native 执行此操作的具体方法。您必须从事物的本机方面完成此操作。

此外,您正在为 iOS 开发吗? Apple 已声明应用程序不应自行关闭。

对于Android,使用BackHandler退出应用程序:

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

BackHandler.exitApp();

编写一个本机模块,在调用时执行以下操作:

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

我回答这个问题太晚了,但我认为我选择的方式可能会对某人有所帮助,所以我回答这个问题。

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

这个 npm 模块帮助我解决了同样的问题 - react-native-exit-app

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

仅限Android 后退退出


import { BackHandler } from "react-native";

useEffect(() => {
  BackHandler.addEventListener("hardwareBackPress",()=>{
    BackHandler.exitApp();
  });
}, []);