У меня была такая же проблема. Сначала я загружаю свои данные с помощью .loadDataWithBaseURL () с активами dir в качестве базового 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 каким-то образом отключают локальное хранилище.
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 в 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>
Надеюсь, это кому-нибудь поможет. Это стоит мне часов!