He estado luchando durante días tratando de averiguar por qué Linking eventListener no parece funcionar. Estoy configurando correctamente el detector de eventos: Linking.addEventListener(“url”, handleStravaRedirect);
donde, "handleStravaRedirect" es la función de devolución de llamada que se llamará después de que el usuario otorgue permiso a mi aplicación en el sitio web de terceros. El problema es que nunca se llama a esta función después de la redirección a mi aplicación. Pensé que estaba haciendo algo mal, pero cuando probé el flujo de autenticación en Android, el controlador de eventos se activó como se esperaba.
¿Hay algún paso adicional que deba hacer para que la vinculación funcione en iOS? Parece que iOS maneja la aplicación que se empuja a un segundo plano y la redirección de manera diferente a como lo hace Android, casi como si Linking eventListener ni siquiera supiera que el usuario abandonó la aplicación en primer lugar.
Otra información:
Para realizar la solicitud de autenticación y abrir el navegador web, estoy usando: AuthSession.useAuthRequest
Cuando registro "Linking.addEventListener" justo encima de donde se vincula, la función está allí y no recibo ningún error que indique que la adición del detector de eventos falló, por lo que asumo que la parte está configurada correctamente y el problema es puramente en la reapertura de mi aplicación desde el navegador.
Tengo el mismo problema en Dev cuando uso el esquema "exp://" y en Testflight cuando uso mi esquema personalizado "herofit://".
EDITAR: Esto parece ser muy similar al problema que tengo https://forums.expo.dev/t/expo-deeplinking-issue-with-addeventlistener/2254/14
Resolví mi problema. No pude leer la respuesta porque estaba usando el enlace "AuthSession.useAuthRequest" e intentaba escuchar la respuesta con "Linking.addEventListener". En cambio, necesitaba escuchar la respuesta con "respuesta", que era uno de los métodos devueltos en el enlace useAuthRequest.