(一)前言
我首先描述下,这种报错出现的场景
- ios <= 10 真机 Safari 的无痕浏览模式
- 使用localStorage or sessionStorage 的 setItem
当然,问题肯定社区有解决方案,以下链接可以满足你想要的答案
问题链接1
问题链接2
问题链接3
(二)解决过程
如果你看完,那么问题可以总结为,两个方向
- 是我们h5站点增加检测是否支持,并提示用户切换模式
- 我们在不支持情况,默认切到cookie
当然因为cookie本身储存空间不大,所以建议如果本地存储大量数据,不建议用2,以下为2中支持提供代码
检测是否支持
function isStorageNameSupported(storage) {
var testKey = 'test';
try {
storage.setItem(testKey, '1');
storage.removeItem(testKey);
return storage in win && win[storage];
} catch (error) {
return false;
}
}
默认切换到cookie
因为cookie需要字符串处理,所以安装一个包
js-cookie
首先实现一个storageHelper类,提供切换
import Cookies from