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