Перейти к содержимому

Universal Links (iOS)

Universal Links — механизм Apple с iOS 9: обычная https-ссылка открывает нужный экран приложения, если домен подтверждён файлом apple-app-site-association.

Что должно совпасть, чтобы ссылка открыла приложение

Связка домена и приложения подтверждается с двух сторон. Со стороны сайта — файл apple-app-site-association: JSON без расширения в имени, отдаётся по HTTPS из корня домена или из каталога /.well-known/, код ответа 200 сразу, без промежуточных редиректов. Внутри — идентификаторы приложений и пути, которые им передаются.

Со стороны приложения — включённая возможность Associated Domains с записью вида applinks:example.com на каждый перехватываемый домен. Домен в записи и домен, откуда отдаётся файл, должны совпадать буквально: поддомен — уже другой домен.

Проверка идёт не в момент тапа: файл считывается при установке или обновлении приложения, результат система запоминает. Правки на сайте применяются с задержкой — там, где приложение уже стоит, действует прежняя связка. Схожая по смыслу схема на Android разобрана в термине App Links, требования там свои.

Почему ссылка вдруг открывается в браузере

Самая частая причина не в коде. Если пользователь однажды нажал на плашке сверху «Открыть в Safari», система запомнила выбор и дальше ведёт домен в браузер: у разработчика всё исправно, а на конкретном телефоне приложение не всплывает. Возвращает приложение долгое нажатие на ссылку с выбором открытия в нём.

Вторая причина — контекст перехода. Механизм рассчитан на осознанный тап; переход, инициированный кодом, или клик во встроенном веб-просмотре чужого приложения нередко остаётся в браузере. Отсюда жалобы «из почты открывает, из чата — нет».

Третья — редиректы. Цепочка через промежуточные домены и трекинговые прослойки мешает опознать ссылку: система смотрит на адрес, по которому идёт переход.

Как класть такие ссылки в QR-коды и сокращатели

В QR-код кодируйте обычный https-адрес верифицированного домена — тот же, что уходит в письме. Кастомная схема myapp:// внутри кода вредна: на телефоне без установленного приложения она не открывается вовсе. Https-адрес в худшем случае просто откроет сайт.

С сокращателями смотрите на домен и длину цепочки. Чужой публичный сервис отдаёт свой домен, файла привязки вашего приложения там нет, и переход почти наверняка уйдёт в браузер. Короткие ссылки на собственном домене ведут себя иначе: домен ваш, файл лежит там же, что и на сайте, промежуточных переходов минимум.