Android Глубокая связь прерывается - PullRequest
0 голосов
/ 09 октября 2019

У нас есть приложение Andriod, откуда мы начинаем работу с браузером и загружаем страницу.

На странице браузера есть две кнопки «Согласен» и «Отмена». У нас есть URL-адрес с глубокими ссылками, который вызывается нажатием обеих кнопок и возвращает пользователя обратно в приложение, с которого началось путешествие.

Единственное различие в функциональности заключается в нажатии кнопки «Согласен», которую мы поддерживаем. звонки и после того, как мы получаем ответ, который занимает около 10-15 секунд, мы просто перенаправляем chrome на ссылку с глубоким ссылком.

«Отмена» работает, кажется, меньше, но при нажатии кнопки «Согласен» браузер невозможность понять URL-адрес ссылки и выполнить переадресацию в одном сеансе браузера.

Так мы перенаправляем chrome на URL-адрес ссылки.

window.location.replace(redirectUrl);

1 Ответ

0 голосов
/ 10 октября 2019

Вот вывод из нашей отладки. Мы обнаружили, что в коде ничего не пропущено.

Chrome не запускает внешнее приложение для заданного URI-адреса Intent в следующих случаях. Когда Intent URI перенаправляется с введенного URL. Когда Intent URI инициируется без жеста пользователя.

При нажатии кнопки «Отмена» он работает все время, так как нет никакого внутреннего вызова. На кнопке «Согласен» мы вызываем бэкэнд, а после выполнения обещания перенаправляем обратно в приложениеВ этом сценарии Chrome не рассматривает это как жест пользователя все время, поэтому периодически его не удается.

Один из способов решения этой проблемы - вместо открытия нового окна браузера в Android WebView.

...