Подскажите как корректно перезагружать страницу в WebView в onReceivedError / onReceivedHttpError, если она была загружена с ошибкой?
Если более подробно - В приложение встроен эквайринг, соответсвенно, весь процесс приема денег (ввод карты, ввод кода из смс) происходит в WebView. И периодически там возникают ошибки у банков - начиная от всяких net::ERR_CONNECTION_ABORTED / net::ERR_CONNECTION_TIMED_OUT / net::ERR_NAME_NOT_RESOLVED заканчивая http. ошибками.
Был бы одычный браузер - достаточно было бы перезагрузить страницу (хром вроде даже автоматом перезагружает). А в WebView - хз как делать.
Пробовал webView.reload() - не работает с POST запросами (а в банках там в основном только они), пробовал webView.loadUrl(failUrl); - не сохраняет POST (оно и понятно), пробовал webView.loadUrl( "javascript:window.location.reload( true )" ); - тоже не отправляет заново POST.
Там вроде Гугл объявил крестовый поход против платежей в обход своего апи, так что, видимо, скоро проблема отпадёт сама собой. По теме ничего сказать не могу.
Денис Загаевский, Про крестовый поход слышал, но у нас товар - физический так сказать, там можно юзать сторонние системы, ну и гугл-пей, конечно, в приложуху давно встроен....
А сабж на самом деле интересный - чет щас тестирую, всякие нюансы всплывают, чуть позже отпишусь сюда каков правильный путь...
Не уверен, но м.б. попробовать следующее: добавить к странице эквайринга свой js скрипт через WV, связать его с нативным кодом, добавить на кнопку оплаты хук, вызывающий код добавленного скрипта, который, в свою очередь, возьмет данные для POST и передаст нативной части приложения, потом, при ошибке - просто сгенерировать новый POST на основе данных, полученных через хук и отправить его. Но это костыль.