Android - сохранить значение в LocalStorage до WebView.loadUrl()
Прежде чем загружать URL-адрес в WebView, я хочу установить значение внутри браузера LocalStorage.
До сих пор единственный способ, которым мне удалось установить это значение, - это после загрузки страницы. Вот как я могу установить значение:
browser.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
loadUrl("javascript: LocalStorage.set('namespace', 'key', 'value');");
}
}
Я попытался переопределить метод onPageStarted()
, но значение не сохраняется.
Как установить этот ключ/значение перед вызовом browser.loadUrl()
? URL-адрес зависит от этого значения, поэтому мне нужно установить значение перед загрузкой страницы.
Ответы
Ответ 1
Что вы можете сделать, это установить перенаправление в javascript
на фактический URL и загрузить javascript плюс перенаправление с помощью webview.loadData()
.
String injection = "<html><head><script type='javascript'>LocalStorage.set('namespace', 'key', 'value');window.location.replace('YOUR_URL_HERE');</script></head><body></body></html>";
webview.loadData(injection, "text/html", null);
Имейте в виду, что вам, возможно, потребуется сохранить это в файл перед его работой: см. Как загрузить перенаправление javascript в веб-просмотр андроида?