iOS上的Facebook浏览器:localStorage的问题

时间:2017-11-16 22:23:01

标签: javascript ios html5 facebook

在iOS和Android上的Facebook浏览器中打开网站时,我们的webapp(react)的Localstorage表现得很奇怪。我们有一个身份验证流程,它依赖于在localstorage中存储令牌并读取它。我们在Facebook浏览器中打开网站(用户点击Facebook上我们网站的链接)时看到的症状是,登录时auth流首次尝试失败有效在第二次尝试登录时。看起来本地存储是异步的。至少它的行为与Chrome,Firefox和Safari等其他浏览器不同。

我尝试在登录后重定向之前执行最多700毫秒的setTimeout,但它仍然无法从localstorage读取令牌。 然而,我可以在localstorage.getItem(key)之后立即执行localstorage.setItem(key, value)并获得预期结果。

1 个答案:

答案 0 :(得分:0)

如果有人在 Fasebook 应用程序内浏览器中对 localStorage 有问题,请确保您在 localStorage 中将字符串设置为变量(不是数字、布尔值等)。这是一个简单的规则,但有时您会在没有收到错误时忘记它。

这是我的代码在 smarty Chrome 中工作,但在 Facebook 浏览器中没有按预期工作,因为 exp 变量是一个数字:

window.localStorage.setItem("exp", exp);

但是这段代码在两种浏览器中都运行良好:

window.localStorage.setItem("exp", ''+exp);