2010-04-14 5 views
10

J'écris une application web iPhone simple en utilisant localStorage de HTML5.
Les tests effectués sur un périphérique 2G montrent que les données stockées à l'aide de localStorage ne sont pas conservées après la fin du processus Safari, même si les fenêtres Safari ouvertes sont conservées.HTML5 sur iPhone Safari: les données stockées par localStorage ne sont pas toujours conservées. Pourquoi?

Les données sont également perdues dans le cas où je suis sur un site différent sur une fenêtre Safari différente, puis je change la fenêtre à l'endroit où l'application Web dans le sujet est affichée. Lorsque Safari charge la page, il actualise automatiquement la page. Ensuite, les données sont perdues. Ce est un code de test simple:

<html> 
<head> 
    <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
</head> 
<body> 
<script> 
    alert("1:" + localStorage.getItem("test")); 
    localStorage.setItem("test", "123"); 
    alert("2:" + localStorage.getItem("test")); 
</script> 
</body> 

Pour autant que je comprends les données devraient persister!
Quelqu'un peut-il faire la lumière sur ce comportement? Que dois-je faire pour que la persistance fonctionne?

Merci!
Tom.

Répondre

0

J'ai essayé votre code sur mon iPhone 3G et Safari sur Windows et cela fonctionne. Peut-être que vous utilisez une ancienne version de Safari sur votre iPhone?

+0

Je suis sous OS 3.1.2. Avez-vous tué le processus de safari? ou redémarré l'appareil et toujours vous avez les données correctement la prochaine fois que vous avez visité la page? – Aerodyne

2

Selon Apple (http://developer.apple.com/safari/library/documentation/iphone/conceptual/safarijsdatabaseguide/Name-ValueStorage/Name-ValueStorage.html#//apple_ref/doc/uid/TP40007256-CH6-SW3), le support localStorage a été ajouté dans Safari 4.0.

Selon Wikipedia (http://en.wikipedia.org/wiki/Safari_version_history), Safari 4.0 a été ajouté dans iPhone OS 3.0.

Les iPhones 2G n'étaient pas livrés avec OS 3.0 ou version ultérieure pré-installé. Votre version du système d'exploitation iPhoone est probablement trop ancienne.

+1

Mon iPhone 2G fonctionne OS est 3.1.2. – Aerodyne

Questions connexes