¿Invita a una persona de contactos que no tiene una aplicación?

Quiero que los usuarios de mi aplicación de iPhone inviten a personas de sus contactos a un grupo que están creando. Puedo usar enlaces profundos para las personas que ya tienen instalada la aplicación para que se muestre automáticamente una invitación, pero me preguntaba si de alguna manera puedo pasar información personalizada a alguien que descarga la aplicación por primera vez, entonces, después de abrir inicialmente la aplicación, Tiene una invitación a esperar.

Por lo que puedo decir, esto es imposible, pero me preguntaba si hay alguna otra forma de asociar de algún modo un contacto con esa persona que hace una count en su propio dispositivo. Mi aplicación utiliza la authentication de gmail para la creación de counts, por lo que si todos tenían los gmail de cada uno guardados en su contacto, esto podría ser posible, pero ese no es el caso, lamentablemente. Si pudiera get el número de teléfono de un usuario, sería fácil, pero sé que eso no está permitido sin preguntar específicamente al usuario.

¿Alguien sabe si es posible hacer algo así como enlaces profundos para las personas que instalan la aplicación por primera vez?

Puedes hacerlo con Google Firebase Dynamic Links. Google tiene una guía para esto aquí:

https://firebase.google.com/docs/dynamic-links/

Si entiendo la pregunta correctamente, esto es lo que haría:

Escenario: enviar invitación

  • Si el correo electrónico invitado por un usuario es un correo electrónico registrado, hecho.

  • Si el correo electrónico invitado por el usuario no es un correo electrónico registrado, guárdelo en una tabla separada ( pending invites )

Escenario: Registrarse / Iniciar session

  • El usuario se registra con el correo electrónico, almacena la información del usuario.

  • Cuando el usuario inicia session, verifique si el correo electrónico existe en la tabla de pending invites , si existe, presente invitación.

  • Eliminar usuario de la tabla de pending invites

No estoy seguro de si ya lo tienes pero podrías necesitar una tabla de db para mantener las invitaciones enviadas por tus usuarios.

Lo que está describiendo se denomina Enlace profundo diferido ( Enlace Deep Linking refiere al uso de un enlace para abrir su aplicación directamente a una parte específica del contenido, y Defernetworking significa que funciona incluso si la aplicación no se instala primero).

Como anotó, no hay una forma nativa de lograr esto en iOS o Android. Los esquemas de URL no funcionan, porque siempre fallan con un error si la aplicación no está instalada. Los enlaces universales más recientes de Apple en iOS 9+ se acercan porque al less no generan un error si la aplicación no está instalada, pero aún así tendrás que manejar networkingirigir al usuario desde tu website a la App Store. No puede pasar context a la aplicación después de la installation con Universal Links, por lo que no podría presentar la invitación. Adicionalmente. Los enlaces universales en realidad no son compatibles en muchos lugares .

Para que esto funcione, necesita un server remoto para cerrar el ciclo. Puedes build esto tú mismo , pero realmente no deberías hacerlo por muchas razones (no less importante de las cuales es que tienes cosas más importantes que hacer). Servicios gratuitos como Branch.io (divulgación completa: Branch es tan increíble que trabajo allí) y Firebase Dynamic Links están diseñados para resolver exactamente este requisito y pueden manejar toda la infraestructura de backend para enlaces profundos diferidos para que no tenga que hacerlo. Desde su perspectiva, como desarrollador, obtendrá exactamente los mismos datos con los que trabajar, independientemente de si la aplicación se instaló o no cuando se hizo clic en el enlace.