Пригласить человека из контактов, у которого нет приложения?
Я хочу, чтобы пользователи моего приложения для iPhone приглашали людей из своих контактов в созданную ими группу. Я могу использовать глубокие ссылки для людей, у которых уже установлено приложение, чтобы автоматически отображалось приглашение, но мне было интересно, могу ли я каким-то образом передать пользовательскую информацию тому, кто загружает приложение в первый раз, так что после того, как они первоначально откроют приложение, они будут ждем приглашения.
Насколько я могу сказать, это невозможно, но мне было интересно, есть ли другой способ как-то связать контакт с этим человеком, создающим учетную запись на их собственном устройстве. Мое приложение использует аутентификацию gmail для создания учетной записи, поэтому, если бы все gmail-файлы друг друга были сохранены в их контактах, это было бы возможно, но, к сожалению, это не так. Если бы я мог получить номер телефона пользователя, это было бы легко, но я знаю, что это не разрешено без специального запроса пользователя.
Кто-нибудь знает, возможно ли сделать что-то вроде глубоких ссылок для людей, устанавливающих приложение в первый раз?
3 ответа
Вы можете сделать это с помощью динамических ссылок Google Firebase. У Google есть руководство для этого здесь:
Если я правильно понимаю вопрос, вот что я буду делать:
Сценарий: Отправить приглашение
Если электронное письмо, приглашенное пользователем, является зарегистрированным, готово.
Если приглашенное пользователем письмо не является зарегистрированным, сохраните его в отдельной таблице (
pending invites
)
Сценарий: регистрация / вход
Пользователь регистрируется с помощью электронной почты, хранит информацию о пользователе.
Когда пользователь входит в систему, проверьте, существует ли электронная почта в
pending invites
стол, если существует, настоящее приглашение.Удалить пользователя из
pending invites
Таблица
Не уверен, что он у вас уже есть, но вам может понадобиться таблица БД для хранения приглашений, отправленных вашими пользователями.
То, что вы описываете, называется Deferred Deep Linking (Deep Linking
относится к использованию ссылки, чтобы открыть ваше приложение непосредственно к определенному фрагменту контента, и Deferred
означает, что это работает, даже если приложение не установлено первым).
Как вы заметили, на iOS или Android нет собственного способа сделать это. Схемы URL не работают, потому что они всегда терпят неудачу с ошибкой, если приложение не установлено. Новые универсальные ссылки Apple в iOS 9+ становятся ближе к тому, что они по крайней мере не вызывают ошибку, если приложение не установлено, но вам все равно придется обрабатывать перенаправление пользователя с вашего веб-сайта в App Store. Вы не можете передать контекст в приложение после установки с помощью Universal Links, поэтому вы не сможете представить приглашение. Дополнительно. Универсальные ссылки на самом деле не поддерживаются во многих местах.
Чтобы это работало, вам нужен удаленный сервер, чтобы замкнуть петлю. Вы можете построить это самостоятельно, но вам действительно не следует делать это по многим причинам (не в последнюю очередь из тех, у которых есть более важные дела). Бесплатные сервисы, такие как https://branch.io/ (полное раскрытие: Branch - это круто, я там работаю) и Firebase Dynamic Links предназначены для решения именно этого требования и могут обрабатывать всю внутреннюю инфраструктуру для отложенных глубоких ссылок, поэтому вам не нужно этого делать. С вашей точки зрения, как разработчик, вы без проблем получите точно такие же данные для работы независимо от того, было ли установлено приложение при нажатии на ссылку.