#android #local-storage
#Android #локальное хранилище
Вопрос:
В Android 2.2 я не могу получить значение локального хранилища после принудительного закрытия приложения.ЕСЛИ у вас есть какие-либо предложения…Пожалуйста, взгляните на мой код:
WebSettings ws= appView.getSettings();
ws.setDatabasePath("/data/data/com.decodeSoutions.hive/app_database");
ws.setJavaScriptEnabled(true);
ws.setDatabaseEnabled(true);
ws.setDomStorageEnabled(true);
Спасибо за поддержку
Ответ №1:
У меня была та же проблема. Сначала я загружаю свои данные с помощью .loadDataWithBaseURL() с каталогом активов в качестве базового URL, и возникает проблема. В Android 2.1 это отлично работает с setDomStorageEnabled(true), но в 2.2 вам нужно выполнить следующее.
Сначала:
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setDatabasePath("/data/data/" getPackageName() "/databases/");
Теперь начинается сложная часть:
Запишите весь HTML-код в файл, потому что функции «loadData» каким-то образом отключают localstorage.
try {
FileOutputStream fos = openFileOutput("test.html", Context.MODE_PRIVATE);
fos.write(yourHTMLString.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
webView.loadUrl("file://" getFilesDir().getAbsolutePath() "/test.html");
Но будьте осторожны, если вы загружаете css или js relative в свой html, потому что ваш базовый путь не задан. Чтобы исправить это, введите «file:/// android_assets /» в свой html-код, например:
<link rel="stylesheet" href="file:///android_asset/${stylesheet}" type="text/css" />
<script type="text/javascript" src="file:///android_asset/js/jquery.js"></script>
<script type="text/javascript" src="file:///android_asset/js/jstorage.js"></script>
Надеюсь, это кому-то поможет. Это стоит мне часов!