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

776
Visualizações
Redirigir el enlace del sitio web existente a la aplicación expo reaccionar nativo

Tengo una aplicación que tiene una zona de pruebas de pago. Estoy usando "expo-linking" Linking.openURL(sandboxURL) para abrir el enlace de pago único en un navegador cada vez que el usuario quiere comprar el producto.

Si se cancela el pago, el sandbox redirige a "https://mywebsitedomain/pago/cancel" Si el pago se realiza correctamente, el sandbox redirige a "https://mywebsitedomain/pago/successful"

Lo que quiero lograr es que el navegador redirija a la página de cancelación de pago y pago exitoso de mi aplicación siempre que se activen los enlaces "https://mywebsitedomain/payment/cancel" y "https://mywebsitedomain/payment/successful" en el navegador.

¿Cómo puedo hacer eso? Recibí sugerencias como usar enlaces profundos. en tal caso, no necesariamente necesito crear ningún enlace, solo necesito que el enlace del sitio web existente sea redirigido a mi aplicación. En ese caso, ¿cuál sería la configuración ideal?

Gracias.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

En este caso, recomendaría usar WebView en lugar de vincular, porque la vinculación realmente no le brinda ningún tipo de control para el flujo después de que el usuario abre una URL en el navegador, DeepLinking teóricamente funcionaría, pero abriría la aplicación desde el inicio. pantalla y luego tendría que navegar al usuario manualmente a la pantalla que desea que sea, aunque no creo que esta sea la solución adecuada ... En su lugar, sugeriría abrir una URL en Webview e inyectar el código javascript personalizado. De esta manera, mantendría al usuario en su aplicación y mantendría el control del flujo. react-native-webview que es un módulo obsoleto y debe agregarse a través del administrador de paquetes, tiene onMessage y accesorios de JavaScript injectedJavaScript , y usarlos podría resolver este problema. Como ejemplo :

  1. Cree una pantalla separada que contenga solo una vista web, estirada a pantalla completa.

  2. Importe la pantalla en su stacknavigator con el nombre apropiado.

  3. Al navegar hacia él, pase accesorios de vista web como parámetros de navegación.

Después:

 const jsCode = ` document.addEventListener("click", () => { window.ReactNativeWebView.postMessage(JSON.stringify({type: "click", message : "goBack"})) })`; const onMsg = (event) => { const res = JSON.parse(event.nativeEvent.data); if (res.message === "goBack") { navigation.goBack(); } } <WebView source={{ uri: params.uri, html: params?.html }} androidHardwareAccelerationDisabled javaScriptEnabled injectedJavaScript={jsCode} javaScriptCanOpenWindowsAutomatically collapsable onMessage={onMsg} />

este es un código de ejemplo que cierra la vista web cada vez que el usuario hace clic en algo allí, en su lugar, puede verificar window.location.href , publicarlo como un mensaje en su aplicación y si es igual a https://mywebsitedomain/payment/cancel do algo que quieras hacer :)

ACTUALIZAR

como se menciona en los comentarios, para esta tarea concreta, webview ofrece onNavigationStateChange prop, que está destinado a determinar las actualizaciones de navegación en la vista web. Esta podría ser una mejor opción, ya que algunos de los sitios web podrían no permitirle inyectar código javascript personalizado. Pero, sin embargo, la inyección de JavaScript también es posible y también sería una de las soluciones aquí. Como es un poco difícil de explicar aquí, configuré una aplicación de ejemplo aquí, que utiliza los dos enfoques descritos anteriormente: https://github.com/RocKer004/webview-example-app

La aplicación abre los documentos de navegación nativos de React, si hace clic en React Native Express (primera opción), lo llevará de regreso y cerrará la vista web (esto se maneja con el accesorio onNavigationStateChange ), si hace clic en la última opción, la vista web también va a estar cerrado, pero esta vez esto se maneja mediante la inyección de javascript. De lo contrario, eres libre de navegar por la web.

Para obtener más información, consulte: https://github.com/react-native-webview/react-native-webview

over 4 years ago · Santiago Trujillo 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