3

我只需要在 iOS 独立网络应用程序(使用apple-mobile-web-app-capable等)中保留一些简单的数据。数据是在用户访问该站点时定义的,并保存到localStorage.name等。同一页面“保存到主屏幕”但是当我到达那里时,输出localStorage.name等返回undefined

我回到 Safari,它仍然知道这些信息。我用笔记本电脑的开发者控制台把它拉出来,我仍然可以得到所有的数据。它甚至不是一个不同的页面,更不用说不同的域或任何东西了。我读到的所有内容都告诉我localStorage应该在 Safari 和独立应用程序之间共享(修改该数据的小警告)。我错过了什么?

这是代码的要点:

if (!window.navigator.standalone) {
    // show Safari content
    if (localStorage.name != void 0 && localStorage.var2 != void 0) {
        // show normal, "add this to your home screen" language -
        // this screen shows properly
    } else {
        // show "We weren't passed our variables" language
    }
} else {
    // Show standalone/offline content
    if (localStorage.name != void 0 && localStorage.var2 != void 0) {
        // Show normal standalone app content using localStorage variables.
        // I'm not seeing this.
    } else {
        // Show "error" text, which is what I'm getting
        document.body.removeChild(document.getElementById('container'));
        var helper = document.createElement('section')
            helper.id="helper"
        helper.innerHTML = '<h1>Sorry</h1>'
          +   '<p>There seems to be a problem with the app.</p>'
          +   '<pre>'
          +   "  Name: " + localStorage.name + "\n"
          +   "  var2: " + localStorage.var21 + "\n"
          +   '</pre>';
        document.body.insertBefore(helper,document.body.firstChild)
    }
}

对于它的价值,我在 iOS 6.1 中。所以它不应该是一个“老”的问题。我究竟做错了什么?

4

2 回答 2

3

此评论:iOS 'Web App' 的 localStorage 与 Mobile Safari 不同

……有答案。本地存储现在与 Safari 与本机应用程序完全分离。

于 2013-02-06T01:51:45.927 回答
0

我没有使用 localStorage 对带有点符号的键的引用。但是 localStorage.setItem("key", value) 和 localStorage.getItem("key") 方法有效。

于 2013-04-10T06:32:04.530 回答