localStorage关于ios10以下隐私模式不可用的问题

栏目: Html5 · 发布时间: 6年前

内容简介:最近老项目会员中心上报了一个问题,报错如下:部分用户在登录时会出现报错的情况,出现频率大概是每三天有一两个。 根据报错,很明显是setItem的问题。查看web docs没有说有兼容性问题

问题

最近老项目会员中心上报了一个问题,报错如下:

localStorage关于ios10以下隐私模式不可用的问题

部分用户在登录时会出现报错的情况,出现频率大概是每三天有一两个。 根据报错,很明显是setItem的问题。查看web docs没有说有兼容性问题

localStorage关于ios10以下隐私模式不可用的问题

继续了解,发现localstorage对ios11以下隐私模式有兼容问题,调用setItem会报错。即ios11以下的隐私模式不支持localstorage

解决办法

思路是在不兼容的浏览器(模式)下使用cookies来替代localstorage

const _isLocalStorageSupported = function() {    try {        window.localStorage.setItem('test', 1)        window.localStorage.removeItem('test')        return true    }catch(err) {        return false    }}

const getStorage = function(key) { ///localStorage.getItem / cookies    let res = ''    if(_isLocalStorageSupported()) {        res = window.localStorage.getItem(key)    }else { ///cookie        let name = `${key}=`        let ca = document.cookie.split(';')        for(let i=0; i<ca.length; i++) {            let c = ca[i].trim()            if (c.indexOf(name) === 0) {                 res = c.substring(name.length, c.length)            }        }    }    return res}const setStorage = function(key, val) { ///localStorage.setItem / cookies    if(_isLocalStorageSupported()) {        window.localStorage.setItem(key, val)    }else { ///cookie        let d = new Date();        d.setTime(d.getTime()+(30*24*60*60*1000));        let expires = `expires=${d.toGMTString()}`;        document.cookie = `${key}=${val}; ${expires}`;    }}复制代码

封装set和get的全局公共方法

补充

关于为啥 unhandled promise rejection 我有点不理解

localStorage关于ios10以下隐私模式不可用的问题

我是做了catch处理的,这个setItem是在.then()回调里执行的,应该被正常catch而不至于最后被进程捕获。很奇怪,有没有大佬知道原因的,欢迎评论告诉我,谢谢。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C#图解教程

C#图解教程

索利斯 (Daniel M.Solis) / 姚琪琳、苏林、朱晔 / 人民邮电出版社 / 2013-7-1 / CNY 89.00

本书是广受赞誉的C# 图解教程的最新版本。作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式、朴实简洁的文字,并辅以大量表格和代码示例,全面、直观地阐述了C# 语言的各种特性。新版本除了精心修订旧版内容外,还全面涵盖了C# 5.0 的新增特性,比如异步编程、调用者信息、case 表达式、带参数的泛型构造函数、支持null 类型运算等。通过本书,读者能够快速、深入理解C#,为自己的编程生涯......一起来看看 《C#图解教程》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试