Как исправить глубокие ссылки в iOS, когда приложение не установлено на устройстве? - PullRequest
0 голосов
/ 10 июня 2019

Я работаю с функциями глубокого связывания для Android и iOS, мой бэкэнд находится в CI. Глубокая связь работает как для Android, так и для iOS, когда приложение установлено. Но если приложение не было установлено, то я столкнулся с проблемой.

Я пробовал это так: Когда какой-либо пользователь нажимает на ссылку, сначала она перенаправляется в браузер, после чего из моего внутреннего кода я проверяю тип клиентского устройства. Если устройство Android, то я перенаправляю его в приложение Android, если устройство iOS, то оно перенаправляется в приложение iOS. Но когда приложение не установлено, оно перестает работать.

Для Android я поставил следующий код:

header("Location: my.special.scheme://other/parameters/here")

Для iOS добавлена ​​схема приложения непосредственно перед URL.

Кажется, я описал все свои сценарии. Пожалуйста, подскажите, как его следует перенаправить в магазин приложений или на конкретную страницу, когда приложение не установлено.

1 Ответ

1 голос
/ 10 июня 2019

В основном происходит попытка глубокой связи с использованием схемы URI, представленной выше (my.special.scheme://other/parameters/here), и происходит сбой, поскольку приложение не установлено.В этом случае вы не можете перехватить ошибку и перенаправить пользователя в другое место.

Вы можете настроить свой BE так, чтобы он возвращал что-то похожее на это:

window.location.href = "my.special.scheme://other/parameters/here";
setTimeout(function () {
    window.location.href = ...store_link_for_your_app..;
}, 1000);

Таким образом, если не работает глубокая ссылка, после1s вы получите перенаправление.

Важные замечания:

  • Не все браузеры поддерживают глубокую ссылку через схемы URI.Например, в Chrome это не удастся.здесь вы должны будете использовать Intents, см. https://developer.chrome.com/multidevice/android/intents
  • В iOS 9+ браузер Safari заблокирует использование схем URI, если приложение не установлено - вы получите сообщение об ошибке на своем URL-адресе на экранепериод действия.Здесь вам нужно реализовать Universal Links, см. https://developer.apple.com/ios/universal-links/
...