#ios #swift #ios-universal-links #apple-app-site-associate
#iOS #swift #ios-universal-links #apple-app-site-associate
Вопрос:
У нас есть приложение, которое использует функциональность universal links и работает большую часть времени, но в некоторых случаях, особенно при новых установках и в случайных сценариях, когда пользователь нажимает на глубокую ссылку в электронном письме, мобильное приложение не открывается, и вместо него это делает веб-браузер. Приложение поддерживает iOS 12.2 и выше.
Наша настройка выглядит следующим образом:
- В настоящее время файл aasa размещен в папке .well-known и корневой папке на сервере, а тип содержимого — json.
- Файл имеет следующий формат:
{
"webcredentials": {
"apps": [
"TeamID.bundleId"
]
},
"applinks": {
"apps": [],
"details": [
{
"appID": "TeamID.bundleId",
"paths": [
"/reset-password/*",
"/confirm-email/*"
]
},
{
"appIDs": [
"TeamID.bundleId"
],
"components": [
{ "/": "/reset-password/*" },
{ "/": "/confirm-email/*" }
]
}
]
}
}
- Мы добавили соответствующий связанный домен в код проекта
Как я уже говорил ранее, в большинстве случаев это работает нормально, но в некоторых случайных случаях это не так. Я подозреваю, что файл aasa не может быть загружен в тех случаях, когда произошел сбой, но я не уверен в этом.
Кто-нибудь сталкивался с такой же проблемой? Любая помощь приветствуется.
Ответ №1:
Открытие универсальных ссылок — не очень простой процесс.
Во-первых, если это новая установка приложения и она еще не была открыта — система (iOS) не знает о том, что ваше приложение поддерживает UL — приложение должно быть запущено хотя бы один раз.
Следующий — решение пользователя (и системы) о том, как открывать ссылки, зависит от пользователя (и решения системы) — пользователь может получить вопрос об открытии UL через приложение — и решить не использовать эту опцию — он будет открыт в браузере, и теперь система всегда может открывать эти UL в браузере, и наоборот, еслипользователь открывает его с помощью приложения. После этого очень сложно изменить поведение.
Файл AASA загружается при запуске приложения, и, как я тестировал ранее, он сохраняется в системе до тех пор, пока не будет загружен (обновлен) следующий, поэтому, если иногда приложение не может быть загружено — ничего не изменилось (за исключением случаев, когда это был первый запуск и первая попытка загрузить файл aasa.
Некоторые проблемы могут возникнуть, если вы попытаетесь открыть некоторые ссылки, не представленные в файле aasa, но я думаю, что это не ваш случай.
В вашем файле aasa проблем нет.