Я пытаюсь сделать функциональность, подобную facebook, в Android WebView (спецификация проекта не позволяет открывать браузер или выполнять какие-либо действия вне приложения ).
Итак, ограничения заключаются в том, что это нужно делать в WebView. Мне удалось сделать это диалоговым окном, и пользователь apon нажимает кнопку «Нравится», он (WebView) успешно перенаправляется (в том же представлении) на страницу входа в facebook. После успешной аутентификации WebView
(в диалоговом окне) перенаправляется на пустую страницу с заголовком facebook.
Достаточно интересно, когда пользователь покидает пустое диалоговое окно и снова нажимает кнопку «Нравится», он работает отлично (как и в отличие от) - он каким-то образом сохраняет активную аутентификацию. Чтобы разрешить пустую страницу, я пробовал / использовал следующее:
WebViewClient
и shouldOverloadUrlForwarding
, чтобы весь процесс оставался в том же диалоговом окне WebView
. WebChromeClient
для правильного выполнения JavaScript - без этого после входа в систему невозможно понравиться / отличаться. setUserAgentString ()
для имитации других браузеров, таких как Chrome или Firefox попытался обработать сертификат SSL Error (на уровне API 8) (на WebViewClient
)
@Override
public void onReceivedSslError (представление WebView, обработчик SslErrorHandler, ошибка SslError) {
handler.proceed ();
}
с использованием (и всех их возможных комбинаций)
webView.getSettings (). SetAppCacheEnabled (true);
webView.getSettings (). setJavaScriptEnabled (истина);
webView.getSettings (). setJavaScriptCanOpenWindowsAutomatically (true);
Пробовал также сохранять файлы cookie с помощью CookieSyncManager
, CookieManager
и обрабатывать вручную.
Все это безрезультатно. Я действительно ценю любую помощь!