Вы должны указать CookieSyncManager синхронизировать после того, как загрузит соответствующую страницу.В вашем примере кода метод onCreate
полностью выполняется до того, как WebView
попытается загрузить страницу, поэтому процесс синхронизации (который происходит асинхронно), вероятно, завершится до загрузки страницы.
Вместо этого укажитеCookieSyncManager для синхронизации onPageFinished в WebViewClient.Это должно дать вам то, что вы хотите.
Документация CookieSyncManager - хорошее чтение для того, как сделать это правильно.
Вот как вы можете настроить реализацию WebViewClientчтобы сделать это для вас:
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//Users will be notified in case there's an error (i.e. no internet connection)
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
public void onPageFinished(WebView view, String url) {
CookieSyncManager.getInstance().sync();
}
);
Вам не нужно указывать CookieSyncManager для синхронизации в другом месте с этим на месте.Я не проверял это, поэтому дайте мне знать, если это работает.