【问题标题】:How to set website cookies in IOS browser?如何在IOS浏览器中设置网站cookies?
【发布时间】:2014-02-21 16:30:45
【问题描述】:

如果用户未登录,我有一个使用 javascript cookie 进行重定向的网站。但是当您使用 iPad 或 iPhone 访问我的网站时,您将无法进入登录页面,因为 IOS 浏览器默认阻止/禁用 cookie .

我搜索了解决方法并找到了这些set Cookie manually using HTTPCookiestorage

Where are an UIWebView's cookies stored?

但首先,我不知道如何使用它。我已经阅读了,但我仍然不清楚如何将 cookie 设置为 IOS 浏览器,以便用户可以查看我的网站。

谁能帮助/指导我如何使用它?我在我的代码上使用 javascript。它只是一个网站而不是应用程序。

非常感谢!

【问题讨论】:

  • 为什么不使用 localStorage 、 sessionStorage 或 webSQL?
  • @cocco 感谢您的回答。我尝试使用本地存储。但我的网站上有 3 个文件夹,其中有 3 个不同的登录名和登录页面。我可以为每个使用 3 个不同的 localStorage 吗?
  • @cocco 这是我使用 localStorage 的代码。我不太了解 webSQL 和 sessionStorage。您能否检查我的代码,如果满足条件,它应该重定向。这没有发生。再次感谢
  • 我看不到代码...但是您可以创建 3 个不同的 localStorage 变量...有时我将 localStorage 与 JSON.parse 和 JSON.stringify 结合使用...所以我的 localstorage 值可以包含对象和数组。反正我看不到你的代码。
  • index.html <script> localStorage.setItem('count', '1'); localStorage.count = '1'; localStorage.pageLoadCount == 1; if (localStorage.pageLoadCount == 0) location.href="pathhere/loginios.html" localStorage.pageLoadCount = parseInt(localStorage.pageLoadCount) + 1; localStorage.count = localStorage.pageLoadCount; </script>

标签: javascript ios iphone cookies uiwebview


【解决方案1】:

为每个目录使用本地存储...

这就是我的意思:

var dir1=localStorage['dir1']? // if localstorage for dir1 exists
         JSON.parse(localStorage['dir1']): // use localstorage value else
         {count:1,pageLoadCount:1}; // set count to 1 and pagecount to 1

if(dir1.pageLoadCount==0){// will never happen :)
 //localStorage['dir1']=whatever set the storage to something before pagechange
 location.href="pathhere/loginios.html";
}else{
 dir1.pageLoadCount++;
 dir1.count=dir1.pageLoadCount;
 localStorage['dir1']=JSON.stringify(dir1);// set localStorage
}

然后 dir2 的类似/相同脚本

编辑

var defaultInfo=[
 {folder:'folder1',count:1,pageLoadCount:1},
 {folder:'folder2',count:1,pageLoadCount:1},
 {folder:'folder3',count:1,pageLoadCount:1},
],
data=localStorage['data']?JSON.parse(localStorage['data']):defaultInfo;//load

console.log(data);
//do stuff


localStorage['data']=JSON.stringify(data);//store

演示

http://jsfiddle.net/qcuhD/1/

编辑

登录

localStorage['data']=JSON.stringify({logedIn:1})

登录检查

if(localStorage['data']){
 var data=JSON.parse(localStorage['data']);
 if(data.logedIn==1){
  //OK
 }else{
  // not logged in
 }
}else{
 // not logged in
}

【讨论】:

  • 感谢您与我分享。我现在就试试,然后回复你。你能帮我等一下吗?我应该创建['dir1'] 文件夹吗?喜欢['www.mysite.com/folder1']
  • 你可以但是...使用一个简单的变量名,比如 folder1
  • 我在这行有错误{count:1,pageLoadCount:1};
  • var dir1=localStorage['dir1']?JSON.parse(localStorage['dir1'])||{count:1,pageLoadCount:1};应该是一行。
  • var folder1 = "http://example.com/test/"; var dir1=localStorage['folder1']?JSON.parse(localStorage['folder1'])||{count:1,pageLoadCou‌​nt:1}; if(dir1.pageLoadCount==0){ //localStorage['dir1']={whatever}???? location.href="http://example.com/test/login.html"; } dir1.pageLoadCount++; dir1.count=dir1.pageLoadCount; localStorage['dir1']=JSON.stringify(dir1);
猜你喜欢
  • 1970-01-01
  • 2019-05-23
  • 2017-08-15
  • 2013-09-11
  • 2021-11-17
  • 2017-01-07
  • 2021-02-19
  • 1970-01-01
  • 2022-12-23
相关资源
最近更新 更多