Принудительно открыть приложение с помощью Apple Universal Linking

У меня есть настройка Universal Linking в моем приложении.

Теперь при просмотре моего веб-сайта в Safari и посещении зарегистрированной ссылки UL он открывается в Safari и спрашивает меня, хочу ли я открыть его в своем приложении.

Есть ли способ, чтобы он всегда открывался в приложении? Нет запроса на открытие в приложении, просто откройте, когда оно установлено, иначе продолжите в сафари.


person Robert Broersma    schedule 22.12.2016    source источник
comment
Я считаю, что он должен спросить в первый раз, но с тех пор он всегда будет открываться?   -  person Sean Lintern    schedule 22.12.2016
comment
@ SeanLintern88 Я тоже так думаю. Но я бы хотел, чтобы он не спрашивал сначала, как на Android, так как я перенаправляю все свои UL на стандартную страницу, поэтому подсказка теряется, когда она продолжается в Safari. Если это невозможно, мне придется искать другое решение :)   -  person Robert Broersma    schedule 22.12.2016
comment
Я так не думаю. Apple в основном дает пользователю выбор, хочет ли он продолжать использовать Safari или переключиться на родное приложение.   -  person Losiowaty    schedule 22.12.2016
comment
@Losiowaty Впервые Apple дает мне выбор, а теперь я его не хочу.   -  person Robert Broersma    schedule 22.12.2016
comment
Универсальные ссылки не запрашивают пользователя в первый раз. Они просто немедленно открывают приложение до тех пор, пока пользователь явно не отключит их (что на самом деле довольно легко сделать). То, что вы описываете, - это поведение пользовательских схем URI. Можно подробнее о вашей конфигурации?   -  person Alex Bauer    schedule 22.12.2016
comment
Кроме того, обратите внимание, что если вы просматриваете в Safari, универсальная ссылка должна находиться в домене, отличном от страницы, на которой она отображается, чтобы открыть приложение.   -  person Alex Bauer    schedule 22.12.2016
comment
@AlexBauer Это точно моя проблема. Я просматриваю свой собственный веб-сайт, когда я нажимаю на страницу, которую хочу открыть в своем приложении, я хочу, чтобы оно открывало приложение, а не продолжалось в Safari.   -  person Robert Broersma    schedule 22.12.2016
comment
Тогда вам нужно, чтобы эта ссылка находилась на другом домене. Ограничение дизайна от Apple ????   -  person Alex Bauer    schedule 22.12.2016
comment
@AlexBauer Будет ли работать другой субдомен? т. е. link.example.com против example.com   -  person Robert Broersma    schedule 22.12.2016
comment
Да, в самом деле. Это на самом деле лучшее решение   -  person Alex Bauer    schedule 22.12.2016
comment
Хорошо. Может попробовать это. Спасибо всем!   -  person Robert Broersma    schedule 22.12.2016


Ответы (1)


Здесь есть две разные проблемы:

1. В Safari URL-адрес универсальной ссылки должен находиться в другом домене/субдомене, чем страница, на которой она отображается.

Apple очень консервативна в отношении того, где разрешено работать универсальным ссылкам. Одним из ограничений Safari является невозможность открытия приложения, если пользователь уже просматривает тот же сайт (такой смысл страниц — если пользователь приложил усилия, чтобы открыть сайт в Safari, а не в приложении, это может раздражать). если каждая отдельная ссылка на этом сайте пытается открыть приложение, особенно если приложение неправильно настроено для маршрутизации ссылок на контент).

Обходной путь — использовать отдельный домен/субдомен для ссылок, по которым вы хотите открыть приложение. Например, если ваш сайт находится на example.com, укажите любую ссылку, по которой вы хотите открыть приложение, на link.example.com, а затем перенаправьте пользователей без приложения обратно на основной веб-сайт или далее в App Store. На самом деле это система, которую мы построили в Branch.io (которую вы могли бы использовать вместо того, чтобы переделывать ее самостоятельно!)

2. То, что вы описали, не является поведением универсальных ссылок

Универсальные ссылки не запрашивают у пользователя подтверждение перед открытием приложения, даже в первый раз. Они всегда сразу открывают приложение, даже не запрашивая веб-страницу, пока/если пользователь явно не отключит их (что на самом деле довольно легко сделать). То, что вы описываете, — это поведение пользовательских схем URI, поэтому я подозреваю, что у вас может быть какая-то автоматическая переадресация на схему URI приложения на странице, на которую указывает универсальная ссылка. На самом деле в большинстве случаев это не лучшая идея, поскольку пользователи без приложения увидят неприятное сообщение об ошибке.

person Alex Bauer    schedule 22.12.2016
comment
1 полностью верно. 2 нет, у меня вообще нет схемы URI. Я считаю, что смарт-баннер появляется, когда вы просматриваете тот же домен, или, по крайней мере, вы можете его опустить. - person Robert Broersma; 23.12.2016
comment
Хм. Я никогда этого не видел. Не могли бы вы привести примеры ссылок или видео, как это происходит? - person Alex Bauer; 23.12.2016
comment
Отличный ответ Алекс. Но в приведенном выше сценарии в каком домене должен размещаться файл ассоциации ссылок на сайты Apple? Я бы предположил, что это также должно быть на link.example.com? - person stueynet; 05.10.2017
comment
@stueynet да вот оно! Файл AASA находится в домене URL-адреса ссылки. - person Alex Bauer; 05.10.2017
comment
Чтобы приложение открывалось напрямую, URL-адрес должен быть посещен ранее. Если в URL-адресе изменится хотя бы один символ, всплывающее окно появится снова? Это происходит со мной прямо сейчас, поскольку параметры моего пути продолжают меняться. Любое решение для этого? - person Navneet Gill; 06.04.2018
comment
Этот app.link сервис больше не открывает магазин приложений на iPad с Safari 13, если у вас нет приложения. Бьюсь об заклад, потому что он ведет себя так, как будто это Mac OS X Safari. - person odinho - Velmont; 17.04.2020