1

我正在使用 phonegap 和 jQuery mobile 开发一个移动应用程序。

我收到来自 QA 的报告,关于三星 Galaxy Y (android 2.3.6) - localStorage 为空,因此导致应用程序崩溃。

据我所知,android 2.0+ 版本应该支持 localStorage,我什至在 DroidGap 类中添加了以下代码:

super.appView.getSettings().setAllowFileAccess(true);        
super.appView.getSettings().setDatabaseEnabled(true);
super.appView.getSettings().setDatabasePath("/data/data/" + appView.getContext().getPackageName() + "/databases/");
super.appView.getSettings().setDomStorageEnabled(true);    

所以我很难理解为什么这个特定设备似乎不支持 localStorage。有人告诉我,它甚至可以在具有相同版本 Android 的其他设备上运行正常!

是否有任何我不知道的设置或其他事情可能导致 localStorage 为空?

4

3 回答 3

2

您可以从 android SDK 安装文件夹的平台工具文件夹中运行 logcat,在我的机器上是:C:\Program Files (x86)\Android\android-sdk\platform-tools

只需adb logcat从命令提示符运行。你会收到很多消息。

我创建了一个测试应用程序并在 Galaxy Y 上运行它,该应用程序在 onDeviceReady 函数中有以下代码。使用 logcat 它显示不支持的消息

if (typeof window.localStorage == 'object')
{
    // localStorage is supported
    console.log('**HelloGap: localStorage is supported');
}
else
{
    // localStorage is not supported
    console.log('**HelloGap: localStorage is NOT supported');
}

您可以过滤来自 logcat 的消息,但我无法让它工作,所以我只是将输出重定向到一个文本文件并搜索它**HelloGap

于 2012-09-11T09:35:10.130 回答
1

所以事实证明,通过将 Phonegap (cordova) 从 1.8.1 升级到 2.0.0 可以解决问题......

于 2012-09-11T15:26:15.193 回答
0

I had problem with 2.3.6 and localStorage also so I tested 2.3.3 and 2.2 AVD images together with Cordova 2.2.0 and it seems that localStorage is supported but should be called as window.localStorage and not without window scope but what is working on Android 4.x and in Desktop Chrome. But there is another problem that localStorage is not persistent when application is restarted, and I see equal problem in Hydratation, which offers again and again app reinstalation, so I think that is affected by same bug.

于 2013-01-07T01:36:29.417 回答