1

phonegap と jQuery mobile を使用してモバイル アプリを開発しています。

QA から、Samsung Galaxy Y (android 2.3.6) で localStorage が null であるため、アプリがクラッシュするという報告を受けています。

私が知る限り、localStorage は Android バージョン 2.0 以降でサポートされる必要があり、次のコードを 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 が null になる可能性のある、私が認識していない設定やその他のことはありますか??

4

3 に答える 3

2

私のマシンでは、Android SDK インストール フォルダーのプラットフォーム ツール フォルダーから logcat を実行できます。C:\Program Files (x86)\Android\android-sdk\platform-tools

adb logcatコマンドプロンプトから実行するだけです。たくさんのメッセージが届きます。

テスト アプリを作成し、onDeviceReady 関数に次のコードを持つ Galaxy Y で実行しました。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

2.3.6 と localStorage にも問題があったので、Cordova 2.2.0 と一緒に 2.3.3 と 2.2 の AVD イメージをテストしました。 Android 4.x およびデスクトップ Chrome で。しかし、アプリケーションの再起動時に localStorage が永続化されないという別の問題があり、アプリの再インストールを何度も提供する Hydration にも同様の問題が見られるため、同じバグの影響を受けていると思います。

于 2013-01-07T01:36:29.417 に答える