Arn*_*sen 5 javascript html5 facebook ios
当在iOS和android上的Facebook浏览器中打开网站时,我们的webapp(反应)的Localstorage行为很奇怪。我们有一个身份验证流程,该流程取决于将令牌存储在本地存储中并读取它。在Facebook浏览器中打开我们的网站时看到的症状(用户单击Facebook上我们网站的链接)是,认证流在第一次尝试登录时失败,但在第二次尝试登录时有效。看来本地存储是异步的。至少它的行为与其他浏览器(例如Chrome,Firefox和Safari)不同。
在登录后进行重定向之前,我尝试进行长达700毫秒的setTimeout,但是它仍然无法从localstorage中读取令牌。但是,我localstorage.getItem(key)之后能够立即执行localstorage.setItem(key, value)并获得预期的结果。
如果有人在 Fasebook 应用内浏览器中使用 localStorage 时遇到问题,请确保将字符串设置为 localStorage 中的变量(不是数字、布尔值等)。这是一个简单的规则,但有时当您没有出现错误时您会忘记它。
我的代码在 smarty Chrome 中工作,但在 Facebook 浏览器中没有按预期工作,因为exp变量是一个数字:
window.localStorage.setItem("exp", exp);
Run Code Online (Sandbox Code Playgroud)
但这段代码在两种浏览器中都运行良好:
window.localStorage.setItem("exp", ''+exp);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
357 次 |
| 最近记录: |