Распознать возвращаемый URL внутри Chrome пользовательских вкладок и SFSafariViewController во Flutter - PullRequest
0 голосов
/ 16 января 2020

У меня есть проект, в котором клиенты перенаправляются для выполнения запроса на платеж по URL своего банка, открытого в браузере приложения (Chrome Custom Tabs в Android или SFSafariViewController в iOS). Приложение написано на Flutter, и мы используем flutter_inappwebview для этой цели. Существует 2 пути для завершения покупки:

  • Банковское приложение существует, и проект может открыть это банковское приложение и завершить платеж там. Успешный возврат осуществляется с помощью ссылок приложений для Android и универсальных ссылок для iOS. Этот поток работает отлично.

  • Нет банковского приложения, и пользователю предоставляется Chrome Custom Tabs или SFSafariViewController, где он должен завершить весь поток платежей, состоящий из нескольких экранов (шагов ввести банковскую информацию, затем подтвердить пин-код или смс, и последний - экран успеха). На последнем экране отображается «URL-адрес перенаправления» в открытом URL-адресе (один из параметров URL-адреса, а не весь URL-адрес).

При использовании WebView (класс InAppBrowser в этом плагине), существует обратный вызов onLoadStop, где я могу распознать перенаправление и отслеживать, если этот «обратный URL» обнаружен при перенаправлении на последнем экране оплаты. В случае Chrome Custom Tabs или SFSafariViewController такого обратного вызова не существует, и я не уверен, как я могу распознать наличие этого «URL-адреса reutrn» и действовать, когда вижу его, чтобы закрыть браузер в приложении и выполнить действие по отображению персонализированное сообщение пользователя «Вы успешно совершили покупку». Есть идеи, как это может работать?

Даже если вы не знаете, трепетание, любая помощь в том, как это достигается в собственном коде, поможет узнать больше, возможно ли это, и как нативные приложения справляются с этим сценарием.

...