如何在私有模式下在iOS Safari浏览器上启用LocalStorage?

时间:2017-05-19 18:53:25

标签: javascript jquery ios angularjs

我正在开发项目SPA角度应用,需要localstorage浏览器来存储值。我们注意到iOS不允许在私有模式下访问localstorage

我们通过检查localstorage的浏览器兼容性来解决此问题。如果它不允许本地存储,我们使用AngularJS的$rootScope对象临时存储值。

这种方法的唯一挑战是当页面刷新时,数据将被清除,因为我们正在使用$rootScope,这将在页面刷新时被销毁

以下是我的问题:

  1. 他们可以通过localstorage启用javascript吗?
  2. 他们有更好的替代方法吗?理想情况下,我们希望在页面刷新时保留值。怎么可能? (使用localstorage
  3. 是否合适

    谢谢, Gokul

2 个答案:

答案 0 :(得分:0)

尝试使用Cookie。

$cookies提供了getter和setter的标准api。

以下是如何使用它们的示例:

angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {
  // Retrieving a cookie
  var favoriteCookie = $cookies.get('myFavorite');
  // Setting a cookie
  $cookies.put('myFavorite', 'oatmeal');
}]);

以下是完整的方法列表:

方法

get(key);
  

返回给定cookie密钥的值

getObject(key);
  

返回给定cookie密钥的反序列化值

getAll();
  

返回包含所有Cookie的键值对象

put(key, value, [options]);
  

设置给定cookie密钥的值

putObject(key, value, [options]);
  

序列化并设置给定cookie密钥的值

remove(key, [options]);
  

删除给定的Cookie

答案 1 :(得分:-1)

  1. 不,您无法通过localstorage或其他hacky方式启用js
  2. 我认为最好的选择是使用cookies
  3. 您可以在此处了解如何使用Cookie https://www.w3schools.com/js/js_cookies.asp

    angularJS https://docs.angularjs.org/api/ngCookies/service/ $饼干