MadBrains/Sberbank-Acquiring-SDK-Flutter

Андроид, SberPAY

xurc opened this issue · 2 comments

xurc commented

При нажатии кнопки SberPAY на странице оплаты происходит попытка перехода из WebView в приложение Сбербанка по applink, которая завершается приложенной ошибкой. Пробовали перехватывать такой переход в navigationDelegate и открывать приложение Сбербанка через url_launcher c LaunchMode.externalApplication, но в этом случае WebView теряет контроль и не срабатывают хуки onPageStarted и т.д.

Устройство не виртуальное, приложение сбербанка установлено, но этом же устройстве приложение Сбербанка через url_launcher открывается.

Есть ли способ сохранить возможность оплаты через SberPAY?

image

Здравствуйте @xurc, вы все правильно делаете что перехватываете applink через url_launcher.

iOS

Для возможности проверять наличие установленного МП СБОЛ на устройстве, необходимо поправить
Info.plist вашего приложения, добавив следующее:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>sberbankonline</string>
    <string>sbolpay</string>
    <string>sberpay</string>
</array>

iOS и Android

Похоже в последней версии url_launcher необходимо передавать LaunchMode.externalNonBrowserApplication в метод launchUrl.

Похоже в последней версии url_launcher необходимо передавать LaunchMode.externalNonBrowserApplication в метод launchUrl.

На самом деле не совсем корректно. В случае iOS'а, если использовать LaunchMode.externalNonBrowserApplication, то url_launcher будет обращаться к платформе с активированным параметром universalLinksOnly и ссылки от сбера не будут открываться (что стоило мне отвалившейся жеппы). Лучше выбирать LaunchMode.externalApplication