Abbiamo un'app Web che viene eseguita su Facebook (ad esempio, una versione in un iFrame in un dominio diverso). Se un utente di Safari ha impostato i cookie e i dati del sito Web predefiniti, "Consenti ai siti Web visitati", i dati archiviati tramite localStorage.setItem agiscono come sessionStorage, ovvero non è disponibile oltre la sessione corrente dell'utente (ovvero dopo la chiusura dell'utente la scheda). Se modifichiamo l'impostazione su "Consenti sempre", funziona come in Chrome, IE, ecc.localStorage Safari non persistente tra le sessioni
Come prova, abbiamo provato a navigare direttamente nel dominio della nostra app (https://ourappname.appspot.com) e funziona correttamente Là. E poi dovrebbe essere davvero un sito visitato, ma quando si torna al gioco su Facebook, il problema esiste ancora.
Si noti che la chiamata setItem ha esito positivo, è solo che getItem non restituisce nulla in una sessione successiva. (Quindi non è come quando l'utente è la navigazione privata e la chiamata setItem fallisce con un errore superato.)
Cosa dobbiamo fare per supportare Safari in modo che la nostra app, in esecuzione su Facebook, possa utilizzare localStorage come inteso dove i dati sopravviveranno tra una sessione e l'altra?
Strano, l'ho appena testato in Safari 8.0.7 (10600.7.12) con "Permetti dai siti web che visito". Ho impostato una chiave localStorage e poi chiuso il browser (con ⌘ + Q) e quando ho riaperto il browser e utilizzato localStorage.getItem era lì. – daviddoran
@daviddoran grazie. Stavi testando un sito in esecuzione su un iFrame che era un dominio diverso rispetto al sito di livello superiore? Modificherò la mia domanda per renderlo più chiaro. – leontx