2012-10-21 1 views
8

Ho un'app che sta estraendo parti di un sito Web in UIWebViews. Quelle pagine utilizzano l'archiviazione locale per mantenere lo stato, come ultima cosa visualizzata e varie impostazioni, ecc.HTML 5 Archiviazione locale non funzionante in UIWebView su iOS 6, 7 o 8

Vedo la memoria locale UIWebViews in fase di creazione (tramite Web Inspector con dispositivo e App connessa alla macchina di debug) ma poi cancellata dopo l'App è spento. Le pagine pertinenti funzionano correttamente sul sito principale nei browser standard e anche su Mobile Safari, ma non in UIWebViews?

Sto scavando in giro e vedo parlare di modifiche alla cache di archiviazione locale con iOS6, ma non capisco se questo può funzionare o meno, e in caso affermativo come abilitarlo?

Chiunque ha una risposta definitiva, prima di passare all'utilizzo dei cookie o fare qualcosa dal lato server?

Grazie.

risposta

5

* UPDATE *
Definite iOS bug, riportato come: # 12.546.916
Non fisso come di iOS: 8.3

UIWebView ignora WebKitStoreWebDataForBackup chiave quando impostato in NSUserDefaults.

* Messaggio *
Questa chiave originale NSUserDefaults si sono resi disponibili in iOS 6:

WebKitStoreWebDataForBackup = YES 

abbiamo impostato in cima alla nostra ApplicationDelegate in questo modo:

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

iOS 6 di uscita Le note discutono qui: Release Notes. Si suppone di dire a WebKit che UIWebView LocalStorage non è usa e getta e che deve essere collocato in una posizione non usa e getta.

Chiaramente non funziona. iOS ignora WebKitStoreWebDataForBackup ed elimina LocalStorage quando l'applicazione si arresta o la pagina si aggiorna.

Utilizzando il Controllo Web durante il debug, è possibile vedere la memoria locale creata, ma dopo l'arresto e il riavvio dell'app non funziona più.

La pagina html/js in questione FUNZIONA quando visualizzata in Firefox, Chrome, Safari e Mobile Safari, ma NON quando la pagina viene visualizzata in UIWebView.

+0

Ci sono aggiornamenti che Apple ha risolto o meno? –

+0

Non abbiamo ricevuto alcuna notifica tramite Bug Reporter che il bug sia "Fisso". Mi hanno segnalato per gli altri, quindi spero che lo facciano anche loro. –

+0

Non sono stato in grado di riprodurre questo errore in 6.1.3 o 6.1.4. Qualcun altro riproduce questo bug nelle versioni precedenti? – iphone007