在WebView中禁用或删除Cookie而不影响其他应用程序

时间:2011-08-18 22:33:11

标签: objective-c cookies

我正在处理我的Mac OSX 10.5应用程序中的一个问题,该问题需要在用户注销应用程序时删除Cookie,以便其他用户无需退出应用程序即可登录。当用户第一次进行身份验证时,WebView会使用单例cookie存储类NSHTTPCookieStorage接收并缓存5个cookie。当我尝试使用[NSHTTPCookieStorage cookiesForURL:]方法检索cookie时,我只得到4.这意味着第5个与其他URL相关联。我无法使用域名识别cookie,因为我可能会删除其他应用程序使用的cookie。我正在考虑以下几点:

  1. 加载网址时禁用WebView的Cookie。
    • 我尝试过使用[NSMutableURLRequest setHTTPShouldHandleCookies:NO],但这没有用。我无法使用NSHTTPCookieStorage更改cookie策略,因为它会影响其他应用程序。
  2. 检索我正在加载的网址的Cookie
    • 我不知道这是否可行。我搜索了可用于WebView但没有找到任何内容的所有委托方法
  3. 使用[WebFrame reloadFromOrigin]实例方法重新加载URL
    • 仅适用于Mac OSX> = 10.6
  4. 重新创建WebView实例
    • 没有帮助,Cookie仍然存在
  5. 我也尝试过WebPreferences类提供的不同选项,但这没有帮助。在此先感谢任何解决此问题的提示。

1 个答案:

答案 0 :(得分:1)

您想与Safari共享Cookie吗?如果不是(我假设你没有),那么请查看IGIsolatedCookieWebView以获取如何在webkit中创建自己的私有cookie存储的示例。

如果您想与Safari共享Cookie,则需要使用NSHTTPCookieStorage在适当的时间跟踪并删除相关的Cookie。