我有同样的问题。起初,我用.loadDataWithBaseURL()加载我的数据与资产目录作为基地网址,并有问题。在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/");
现在棘手的问题beginns:
写所有的HTML代码的文件,因为 “loadData” -functions以某种方式禁用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相对于你的HTML,因为你的基路径没有设置。要解决此问题,请在您的html代码中输入“file:/// android_assets /”,例如:
<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>
希望这可以帮助某人。它花费我几个小时!