Честно говоря, это довольно сложно реализовать самостоятельно. После того, как вы обнаружили пользовательский агент iOS, вы можете реализовать перенаправление JavaScript на своем сервере примерно так:
setTimeout(function() {
window.location = "https://itunes.apple.com/path/to/your/app/";
}, 25);
// If "yourapp://" is registered, the user will see a dialog
// asking if want to open your app. If they agree, your app will
// launch immediately and the timer won't fire.
// If not installed, you'll get an ugly "Cannot Open Page"
// dialogue and the App Store will launch when the timer expires.
window.location = "yourapp://";
Очевидно, что это не идеальное решение, и оно имеет массу неприятных крайних случаев, в первую очередь ошибку «Не удается открыть страницу», которую пользователи увидят перед перенаправлением в App Store, если у них не установлено ваше приложение. До недавнего времени, это можно было обойти достаточно удобным для пользователя способом, используя более детализированную версию этого скрипта. uri-scheme-and-universal-links" rel="nofollow">преднамеренно нарушил это в обновлении iOS 9.2.
Вы также можете включить универсальный Ссылки. Apple знает, что это досадная проблема, и пытается помочь. Универсальные ссылки позволяют использовать обычный URL-адрес страницы на вашем веб-сайте (что может быть простым перенаправлением в App Store без триггера пользовательского URL-адреса, вызывающего ошибку «Невозможно открыть страницу»), что перехвачены вашим телефоном и отправлены непосредственно в ваше приложение, если оно установлено. К сожалению, универсальные ссылки работают только в iOS 9+ и пока не работают при открытии во многих приложениях.
Лучшее решение — это комбинация вышеперечисленных методов: универсальные ссылки и ссылки на приложения везде, где они поддерживаются, и интеллектуальные перенаправления JavaScript в качестве запасного варианта. С этим довольно сложно справиться, поэтому лучшим вариантом может быть бесплатный сервис, такой как Branch.io (полное раскрытие: я работать с командой), чтобы позаботиться обо всех технических аспектах.
person
Alex Bauer
schedule
06.04.2016