Глубокая ссылка не работает в Chrome
Я пытаюсь сделать глубокую ссылку так, чтобы, когда кто-то открывает ссылку из мобильного браузера, он либо открывает приложение, если оно установлено, либо открывает ссылку в магазине воспроизведения, чтобы загрузить приложение.
Вот мой URI:
intent://scan/#Intent;scheme=com.example.android;package=com.example.android;end
Когда я набираю это в приложении Mozilla Firefox на Android, оно открывает мое приложение, если оно установлено, или открывает ссылку на магазин воспроизведения, если оно не установлено. Но когда я набираю то же самое в Chrome, вместо того, чтобы открывать приложение или игровой магазин, он просто выполняет поиск в Google. Что не так с моим решением и как мне заставить его работать?
1 ответ
Это известный wontfix
ошибка в Chrome 40+ (см. тикет проекта Chromium здесь для полной истории).
По сути, команда Chrome считает, что если пользователь действительно вводит что-то в адресную строку, перенаправление не должно произойти. Как вы обнаружили, это противоречит поведению во всех других браузерах.
К счастью, пользователь вряд ли наберет intent://
URI от руки. Если вы поместите URL-адрес в ссылку на веб-странице или предложите ссылку на другую страницу, а затем создадите какое-либо перенаправление (чтобы вы могли обнаружить пользовательский агент и не показывать "сломанный") intent://
ссылка на пользователей в других браузерах), все должно работать правильно.
Если вы не хотите обрабатывать все эти крайние случаи, вы также можете попробовать бесплатный сервис, такой как http://branch.io/ (полное раскрытие: я в команде).