我只需要在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中。所以它不应该是一个“老”的问题。我做错了什么?
答案 0 :(得分:3)
此评论:iOS 'Web App' has different localStorage than Mobile Safari
......有答案。现在,本地存储完全独立于Safari与本机应用程序。
答案 1 :(得分:0)
我没有使用带有点表示法的键的localStorage引用。但是localStorage.setItem(“key”,value)和localStorage.getItem(“key”)方法可以正常工作。