8

Webサイトの一部をUIWebViewsにプルしているアプリがあります。これらのページは、ローカルストレージを使用して、最後に表示されたものやさまざまな設定などの状態を保持します。

UIWebViewsローカルストレージが作成されているのがわかりますが(デバイスとアプリがデバッグマシンに接続されているWeb Inspectorを介して)、アプリのシャットダウン後にクリアされます。関連するページは、標準のブラウザやMobile Safariのメインサイトでは正しく機能しますが、UIWebViewsでは機能しませんか?

私はiOS6でローカルストレージキャッシュへの変更について調べてみましたが、これが機能するかどうか、そして機能する場合はどのように有効にするかについて明確な感覚が得られていません。

Cookieの使用に切り替えるか、サーバー側で何かを実行する前に、誰かが決定的な答えを持っていますか?

ありがとう。

4

1 に答える 1

5

*更新*
明確なiOSのバグ、次のように報告されます:#12546916
iOSの時点では修正されていません:8.3

WebKitStoreWebDataForBackupNSUserDefaultsに設定されている場合、UIWebViewはキーを無視します。

*元の投稿*
このNSUserDefaultsキーはiOS6で利用可能になりました:

WebKitStoreWebDataForBackup = YES

次のように、ApplicationDelegateの上部に設定します。

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"WebKitStoreWebDataForBackup"];

iOS 6リリースノートについては、ここで説明しています:リリースノート。UIWebView LocalStorageは使い捨てではなく、使い捨てではない場所に配置されることをWebKitに通知することになっています。

明らかに機能していません。iOSはWebKitStoreWebDataForBackup、アプリケーションがシャットダウンするかページが更新されると、LocalStorageを無視して削除します。

デバッグ中にWebInspectorを使用すると、作成されたローカルストレージを確認できますが、アプリをシャットダウンして再起動すると、ストレージはなくなります。

問題のhtml/jsページは、Firefox、Chrome、Safari、およびMobile Safariで表示された場合は機能しますが、UIWebViewで表示された場合は機能しません。

于 2012-10-22T16:04:03.517 に答える