gpt4 book ai didi

objective-c - 在不影响其他应用程序的情况下禁用或删除 WebView 中的 cookie

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:43 24 4
gpt4 key购买 nike

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

  1. 加载 URL 时禁用 WebView 的 cookie。
    • 我尝试过使用 [NSMutableURLRequest setHTTPShouldHandleCookies:NO] 但没有帮助。而且我无法使用 NSHTTPCookieStorage 更改 cookie 策略,因为它会影响其他应用程序。
  2. 检索我正在加载的 URL 的 cookie
    • 我不知道这是否可能。我搜索了 WebView 可用的所有委托(delegate)方法,但没有找到任何东西
  3. 使用 [WebFrame reloadFromOrigin] 实例方法重新加载 URL
    • 这仅适用于 Mac OSX >= 10.6
  4. 重新创建 WebView 的实例
    • 没有帮助,cookies 仍然存在

我也尝试了 WebPreferences 类提供的不同选项,但没有帮助。提前感谢您提供解决此问题的任何提示。

最佳答案

您想与 Safari 共享 cookie 吗?如果没有(我假设你没有),那么看看 IGIsolatedCookieWebView有关如何在 webkit 中创建您自己的私有(private) cookie 存储的示例。

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

关于objective-c - 在不影响其他应用程序的情况下禁用或删除 WebView 中的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com