LocalStorage没有传递给独立的Web应用程序

时间:2013-02-06 01:25:50

标签: javascript ios html5 local-storage offline-caching

我只需要在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中。所以它不应该是一个“老”的问题。我做错了什么?

2 个答案:

答案 0 :(得分:3)

此评论:iOS 'Web App' has different localStorage than Mobile Safari

......有答案。现在,本地存储完全独立于Safari与本机应用程序。

答案 1 :(得分:0)

我没有使用带有点表示法的键的localStorage引用。但是localStorage.setItem(“key”,value)和localStorage.getItem(“key”)方法可以正常工作。