Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

337
Visualizações
Restringir la aplicación para que no regrese a través de react-native-webview (React Native)

Desarrollé un sitio web usando reaccionar y ahora he estado tratando de usar esto a través de webview en reaccionar nativo.

Problema: cuando uso el botón Atrás, la aplicación se cierra.

Razón:

  • En mi sitio web de React, estoy usando Link {from react-router dom} para que la navegación no se agregue en el historial.
  • En React Native, dado que onNavigationStateChange usa el historial, navState.canGoBack() devuelve falso.

¿Qué puedo incluir en este else block in handleBackButton para que la aplicación no se cierre?

 import React, { Component } from "react"; import { SafeAreaView, Platform, StatusBar } from "react-native"; import { BackHandler } from "react-native"; import { WebView } from "react-native-webview"; export default class Marketplace extends Component { constructor(props) { super(props); this.state = { canGoBack: false, } } WEBVIEW_REF = React.createRef(); componentDidMount() { BackHandler.addEventListener("hardwareBackPress", this.handleBackButton); } componentWillUnmount() { BackHandler.removeEventListener("hardwareBackPress", this.handleBackButton); } handleBackButton = () => { if (this.state.canGoBack) { this.WEBVIEW_REF.current.goBack(); return true; } else { console.log("Else block"); // what to add here to restrict the app to exit } }; onNavigationStateChange = (navState) => { console.log("navState", navState.canGoBack); this.setState({ canGoBack: navState.canGoBack, }); }; render() { return ( <SafeAreaView style={{ flex: 1, paddingTop: Platform.OS === "android" ? StatusBar.currentHeight : 0, }} > <WebView source={{ uri: "http://localhost:3000/", }} ref={this.WEBVIEW_REF} onNavigationStateChange={this.onNavigationStateChange} /> </SafeAreaView> ); } }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

si desea impedir que el usuario salga de la aplicación, también tendrá que devolver verdadero en la declaración else o simplemente puede hacer esto:

 handleBackButton = () => { if (this.state.canGoBack) { this.WEBVIEW_REF.current.goBack(); } return true; }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda