В 2016 году этого невозможно добиться только с помощью Javascript.
Вы по-прежнему можете использовать этот подход на Android, но Apple внесла изменения в iOS 9.2, которые означают, что это практически бесполезно на устройствах iOS.
Как это работало на iOS
Раньше это делалось так, чтобы попытаться открыть приложение в Javascript, установив для window.location нужный пользовательский путь URI.
window.location = “imdb://title/tt3569230”;
Приложение не установлено
Проблема в том, что когда приложение не установлено, отображается ошибка «Не удается открыть страницу». Уверен, вы все это видели. Это проклятие глубоких ссылок. Во времена iOS 7 и iOS 8 был славный период, когда это можно было обойти, но золотой век прошел.
Чтобы этого избежать, вам пришлось добавить на свою страницу некоторый Javascript, откуда вы перенаправляете его в App Store. Таким образом, пользователь не остался с ошибкой на экране.
window.location = 'imdb://title/tt3569230';
setTimeout(function() {
window.location = 'itms-apps://itunes.apple.com/us/app/imdb-movies-tv/id342792525'
}, 250);
Приложение установлено
When the app was installed, it would display the modal below, prompting the user if they want to open the app:
Что происходит сейчас, так это то, что в iOS 9 Apple изменила модальное окно Открыть в "[app]" с блокирующего режима Javascript на неблокирующее strong > модальный. Это означает, что когда вы пытаетесь открыть приложение с помощью перенаправления Javascript на пользовательскую схему URI, модальное окно больше не будет блокировать выполнение Javascript, в результате чего резервное перенаправление в App Store будет выполняться немедленно перед пользователем. можно нажать кнопку "Открыть".
В Branch.io (полное раскрытие: я в группе Branch) мы увидели, что это появится в бета-версиях iOS 9.2 и были надежды, что наши радары Apple (отчеты об ошибках) и влиятельные партнеры могут побудить Apple решить эту проблему до выпуска. К сожалению для разработчиков iOS, этого не произошло. В ответе Apple на наши опасения было совершенно ясно, что они хотят, чтобы все сделали: внедрили универсальные ссылки.
Решение на 2016 год
Единственный способ иметь единственную ссылку, которая работает повсюду (включая маршрутизацию в приложения, если они установлены, или резервные веб-URL, если они не установлены), должен включать использование универсальных ссылок в iOS. Конечно, универсальные ссылки на самом деле еще не везде поддерживаются в iOS, поэтому есть определенные крайние случаи, когда все еще требуются пользовательские схемы URI (Chrome и Gmail - два больших примера). Вам нужно будет их обнаружить и создать настраиваемую обработку.
У большинства компаний нет ресурсов, чтобы выделить на это одного штатного инженера (или двух), поэтому Pinterest, Tinder, Airbnb, Jet.com, Yummly и т. Д. Приняли платформы для связывания, такие как Branch.io или динамические ссылки Firebase.
person
Alex Bauer
schedule
13.12.2016