Кнопка "Назад" не закрывает приложение. - PullRequest
0 голосов
/ 05 мая 2020

Привет, я пытаюсь сделать это:

1- у меня есть базовое c приложение для просмотра веб-страниц, когда я нажимаю кнопку «Назад», я должен вернуться на последнюю страницу, но если я нахожусь на странице входа и нажимаю кнопку «Назад» или жест назад на моем android мое приложение должно выйти, но не работает, оно остается открытым, когда я нажимаю кнопку возврата, он обновляет sh веб-просмотр снова и снова здесь мой код:

const styles = StyleSheet.create({
  flexContainer: {
    flex: 1
  }
})
export default class App extends Component {
  webView = {
    canGoBack: false,
    ref: null,

  }
  onAndroidBackPress = () => {
    if (this.webView.canGoBack && this.webView.ref) {
      this.webView.ref.goBack();
      return true;
    }
    return false;
  }

  componentWillMount() {
    if (Platform.OS === 'android') {
      BackHandler.addEventListener('hardwareBackPress', this.onAndroidBackPress);
    }
    setTimeout(() => {
      SplashScreen.hide();
  }, 1800);

  }

  componentWillUnmount() {
    if (Platform.OS === 'android') {
      BackHandler.removeEventListener('hardwareBackPress');
    }
  }
  render() {
    return (

      <SafeAreaView style={styles.flexContainer}>
       <WebView
        source={{uri: 'https://clientes.dbsnetwork.net'}}
        startInLoadingState={true}
        allowsBackForwardNavigationGestures
        renderLoading={() => (
          <ActivityIndicator
            color='black'
            size='large'
            style={styles.flexContainer}
          />
        )}
        style={{marginTop: 0}}
        ref={(webView) => { this.webView.ref = webView; }}
        onNavigationStateChange={(navState) => { this.webView.canGoBack = navState.canGoBack; }}
      />
      </SafeAreaView>
    );
  }

}

есть что еще мне следует сделать?

прикрепленное видео gif

enter image description here

спасибо.

1 Ответ

0 голосов
/ 05 мая 2020

Функция выглядит не go для выхода из приложения.

Это должно быть так: (Отредактируйте частичный код)

import { BackHandler } from "react-native";

...
onAndroidBackPress = () => {
    if (this.webView.canGoBack && this.webView.ref) {
        BackHandler.exitApp(); //Function to exit the App
        return true;
    }
    return false;
}
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...