iOS Safari 隐私浏览本地存储和会话存储支持

iOS Safari Private Browsing localStorage and sessionStorage Support?

本文关键字:存储 会话 支持 Safari 隐私 浏览 iOS      更新时间:2023-09-26

我在StackOverflow上发现了一些问题,这些问题解决了iOS Safari隐私浏览和sessionStoragelocalStorage的特定功能。但是我无法找到一个明确的资源来表示iOS Safari在隐私浏览时对sessionStoragelocalStorage的支持。

对此有什么支持,或者 Apple 是否有任何表示此功能的特定资源?普遍的共识是,如果没有 polyfill,根本不支持 localStoragesessionStorage也是如此吗?

非常感谢!

是的,sessionStoragelocalStorage也是如此。

保罗·爱尔兰(Paul Ireland)有一个很好的要点来解释这个问题的历史:

https://gist.github.com/paulirish/5558557

如果您只需要其中之一,则最佳解决方案:

function isLocalStorageEnabled() {
  try {
      var mod = '__storage_test__';
      localStorage.setItem(mod, mod);
      localStorage.removeItem(mod);
      return true;
  } catch(e) {
      return false;
  }
}

或者,为了使它同时适用于两者,MDN 推荐的解决方案更通用:https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API

function storageAvailable(type) {
    try {
        var storage = window[type];
        var x = '__storage_test__';
        storage.setItem(x, x);
        storage.removeItem(x);
        return true;
    }
    catch(e) {
        return false;
    }
}

我不认为iOS有任何特定的资源,但这是Apple的官方文档:

https://developer.apple.com/library/safari/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Name-ValueStorage/Name-ValueStorage.html

这个StackOverflow问题也非常有用:

超出配额错误: Dom 异常 22:尝试向存储添加超出配额的内容

通常,在解决sessionStoragelocalStorage时,请尝试在打开Web检查器的手机上使用Safari进行本地开发。祝你好运:)