Ich entwickle eine Hybrid-App (nur für iOS und Android) mit PhoneGap/Cordova und möchte HTML5 localStorage verwenden, um Inhalte für den Offline-Zugriff zu speichern.
http://caniuse.com/#search=localStorage sagt - "In iOS 5 und 6 werden localStorage-Daten an einem Ort gespeichert, der gelegentlich vom Betriebssystem gelöscht werden kann."
Wie ist die Situation mit einem Webview für iOS 7 (und später)? In welchen Fällen wird localStorage beibehalten oder gelöscht (vom Betriebssystem oder vom Benutzer)?
Wird für ein Update der App localStorage gelöscht?
Wie sieht es mit dem Löschen des Browserverlaufs auf Safari aus - wird dies auch für den Webview gelten?
Muss ich mir Sorgen machen (oder kann ich sogar kontrollieren), wo auf dem Dateisystem localStorage erstellt wird? Ich verstehe, dass es nicht auf iCloud gesichert werden sollte.
Ich habe ein Gerät (iPad) und überprüfe das Dateisystem. Ich sehe, dass sich die localStorage-Datei in ~/Library/Caches in der App-Sandbox befindet, siehe Abbildung unten.
Aus den Dokumenten:
https://developer.Apple.com/icloud/documentation/data-storage/index.html Daten, die erneut heruntergeladen oder regeneriert werden können, sollten in/Library/Caches gespeichert werden Verzeichnis. Zu den Dateien, die Sie im Caches-Verzeichnis ablegen sollten, gehören Datenbank-Cache-Dateien und herunterladbare Inhalte, z. B. solche, die von Zeitschriften-, Zeitungs- und Kartenanwendungen verwendet werden.
Ich mache einfach das, um Daten zu setzen:
localStorage.setItem('foo','this is the FOO value');
localStorage.setItem('bar','and this is the BAR value');
Wenn Sie Cordova verwenden, wurde dieses Problem vor langer Zeit behoben, auch für iOS 5 und iOS 6. Sie sollten sich keine Sorgen machen, ob Sie die neueste Version von Cordova verwenden.
Wenn das Problem mit Cordova-iOS v4 immer noch auftritt, probieren Sie das NativeStorage-Plugin aus. https://www.npmjs.com/package/cordova-plugin-nativestorage .
Es hat Funktionen festgelegt, eingesetzt und abgerufen, die Plattformfunktionen implementieren, wie beispielsweise Android-Voreinstellungen und iOS NSUserDefaults, wodurch der Datenspeicher so sicher wie möglich ist.
cordova plugin add cordova-plugin-nativestorage
NativeStorage.putObject("reference_to_value",<object>, <success-callback>, <error-callback>);
NativeStorage.getObject("reference_to_value",<success-callback>, <error-callback>);
Am besten verwenden Sie das NativeStorage-Plugin:
https://www.npmjs.com/package/cordova-plugin-nativestorage
Um Ihre Fragen zu beantworten:
localStorage
-Daten werden in einem Cache-Verzeichnis im Dateisystem abgelegt, und der Cache wird häufig vom Betriebssystem geleert (z. B. wenn das Gerät über wenig Festplattenspeicher verfügt).