Парсинг сохранённого состояния веб-страниц встроенного WebView вручную
Есть WebView, состояние которого сохраняется в методе onSaveInstanceState и восстанавливается в onRestoreInstanceState в Activity примерно следующим образом:
@Override
protected void onSaveInstanceState(Bundle outState) {
//...
webView.saveState(outState);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//...
webView.restoreState(savedInstanceState);
}
Если вызвать метод WebView#restoreState и передать этот Bundle, то WebView спарсит состояние, поймёт его и применит к WebView. Мне известно, что в этом Bundle сохраняется blob (значение типа byte[]) по ключу WEBVIEW_CHROMIUM_STATE. В этом состоянии хранится URL веб-страницы, куки, позиция прокрутки, и некоторые другие подобные данные.
А как можно самостоятельно спарсить данные из blob'а по ключу WEBVIEW_CHROMIUM_STATE из этого Bundle? Нигде не нашёл документацию, как можно с ним работать, как парсить, объект какого вообще типа представляет собой этот blob, может, какой-то Serializable... В исходном коде SDK также не удалось найти ничего полезного ввиду огромного количества уровней абстракции.
Вот пример, как выглядит blob в Bundle состояния WebView в текстовом виде для главной веб-страницы Яндекса:
