iphone bookmarklet cookie持久性

时间:2010-03-23 21:55:45

标签: persistence iphone mobile-safari session-cookies

我有一个iphone(基于jqtouch)的网络应用程序,它使用cookie进行身份验证。使用流程如下:

  • 用户进入移动登录页面,并被指示将页面保存为主页上的书签。

  • 他们启动书签,转到登录页面登录并获取cookie。

  • Cookie有效,可以在整个网站上导航。

  • 但是,此会话cookie不是持久性的。如果他们离开safari然后使用保存的bookmarklet重新启动,那么在上一个会话期间设置的cookie就会消失。

  • 只是使用safari(即:直接启动safari而不是通过书签)导航页面工作正常(即:启动safari,转到url,登录,重新启动safari,返回url)。 / p>

  • 我发现创建bookmarklet时处于活动状态的cookie是持久性的,但是当通过bookmarklet访问safari时在会话期间设置的任何cookie都不会持久。

  • 我想知道这是否是一个safari / iphone问题和/或是否有任何解决方法。非常感谢您提供的任何见解。

2 个答案:

答案 0 :(得分:2)

K,对于遇到同样问题的人,我通过使用html5的localstorage找到了解决方法。我只需要在设置cookie时使用javascript根据cookie值设置存储,并在加载第一页时从存储值设置cookie。

答案 1 :(得分:0)

我在我的一个应用程序中试过了。我用这种方式试过这个:

  1. 用户登录并将其cookie设置为sharedHttpCookieStorage。
  2. 根据您的网址检查Cookie,获取其值并将其保存在应用程序的存储空间中。
  3. 下次用户想要使用您的应用程序时,请检查您的存储中是否有任何Cookie值。如果是,则创建一个包含这些值的cookie,然后让他再次登录。
  4. 确保在用户注销或Cookie到期日期到达时清除Cookie值。
  5. 我知道这听起来很难,但实际上很容易。所有你必须经历的是Apple关于NSHTTPCookie的文档。

相关问题