10

我使用 HTML5 的 localStorage 编写了一个简单的 iPhone 网络应用程序。
在 2G 设备上进行的测试表明,使用 localStorage 存储的数据在 Safari 进程被终止后不会持续存在,尽管会记住打开的 Safari 窗口。

如果我在不同 Safari 窗口的不同站点上,数据也会丢失,然后我将窗口更改为显示主题中的 Web 应用程序的位置。当 Safari 加载页面时,它会自动刷新页面。然后数据丢失。这是一个简单的测试代码:

<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>

据我了解,数据应该持续存在!
任何人都可以阐明这种行为吗?我应该怎么做才能让持久性发挥作用?

谢谢!
汤姆。

4

3 回答 3

2

根据苹果(https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Name-ValueStorage/Name-ValueStorage.html#//apple_ref/doc/uid/TP40007256-CH6-SW3) ,在 Safari 4.0 中添加了 localStorage 支持。

根据 Wikipedia ( https://en.wikipedia.org/wiki/Safari_version_history),Safari 4.0 被添加到 iPhone OS 3.0 中。

2G iPhone 未预装 OS 3.0 或更高版本。您的 iPhone 操作系统版本很可能太旧。

于 2010-08-19T20:20:39.737 回答
1

我认为 iPhone Safari 中的本地存储存在错误。我和你有类似的问题: http ://groups.google.com/group/phonegap/browse_thread/thread/746868e928aaba5c

于 2010-07-05T14:35:27.290 回答
0

我在我的 iPhone 3G 和 Windows 上的 Safari 上尝试了你的代码,它可以工作。也许您在 iPhone 上运行的是旧版本的 Safari?

于 2010-05-19T14:38:03.360 回答