web-dev-qa-db-ja.com

iOS SafariプライベートブラウジングlocalStorageおよびsessionStorageサポート?

ここStackOverflowで、iOSSafariプライベートブラウジングとsessionStorageおよびlocalStorageの特定の機能に対処するいくつかの質問を見つけました。しかし、プライベートブラウジング時にiOSSafariがsessionStoragelocalStorageをサポートしていることを示す明確なリソースを見つけることができませんでした。

これにはどのようなサポートがありますか、またはAppleこの機能を示す)からの特定のリソースはありますか?一般的なコンセンサスは、localStorageはポリフィルなしではまったくサポートされないということです。 sessionStorageに行きますか?

どうもありがとうございます!

7
Aaron Brewer

IOS向けの特定のリソースはないと思いますが、Appleの公式ドキュメントは次のとおりです。

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

そして、このStackOverflowの質問も非常に役立ちます。

QuotaExceededError:Dom例外22:クォータを超えたストレージに何かを追加しようとしました

一般に、sessionStoragelocalStorageを解くときは、WebInspectorを開いた状態で携帯電話のSafariを使用して実際にローカルで開発してみてください。幸運を :)

4
abhi

はい、sessionStoragelocalStorageについても同じことが言えます。

問題の歴史を説明するPaulIrishによる優れた要点があります。

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

それらの1つだけが必要な場合の最良の解決策:

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;
    }
}
8
theUtherSide