2011-10-05 51 views
1

在Android 2.2的我不能够检索应用程序后,本地存储值是力closed.IF你有什么建议?请大家看我的代码:的Android 2.2的localStorage

WebSettings ws= appView.getSettings(); 
    ws.setDatabasePath("/data/data/com.decodeSoutions.hive/app_database"); 
    ws.setJavaScriptEnabled(true); 
    ws.setDatabaseEnabled(true);                              
    ws.setDomStorageEnabled(true); 

谢谢adv

回答

3

我有同样的问题。起初,我用.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> 

希望这可以帮助某人。它花费我几个小时!