我正在處理我的Mac OSX 10.5應用程序中的一個問題,該問題需要在應用程序的用戶註銷時刪除Cookie - 以便不需要用戶登錄需要退出應用程序。當用戶第一次驗證時,WebView將使用單例cookie存儲類NSHTTPCookieStorage接收並緩存5個Cookie。當我嘗試使用[NSHTTPCookieStorage cookiesForURL:]方法檢索cookie時,我只能得到4.這意味着第五個URL與其他URL關聯。我無法使用該域來識別Cookie,因爲我可能會刪除正在被其他應用程序使用的Cookie。我在考慮以下幾行:禁用或刪除WebView中的cookie而不影響其他應用程序
- 加載URL時禁用WebView的Cookie。
- 我試過使用[NSMutableURLRequest setHTTPShouldHandleCookies:NO]但是沒有幫助。而且我無法使用NSHTTPCookieStorage更改cookie策略,因爲它會影響其他應用程序。
- 找回我加載
- 我不知道這是可能的URL的cookie。我找遍了所有可用的WebView委託方法,但沒有發現任何東西
- 使用執行URL的一個新的重載[WebFrame reloadFromOrigin]實例方法
- 這僅適用於Mac OSX> = 10.6
- 重新創建的WebView 實例
- 沒有幫助,餅乾仍然存在
我也嘗試了WebPreferences類提供的不同選項,但沒有幫助。預先感謝提供解決此問題的任何提示。
我不必與Safari共享cookie。在查看IGIsolatedCookieWebView代碼後,我找到了解決問題的方法。實質上,現在我可以通過實現WebResourceLoadDelegate方法並從獲得的響應中提取cookie來檢索NSURLRequest的所有cookie。我跟蹤這些cookie,然後在重新加載請求之前,我從NSHTTPCookieStorage中刪除這些cookie。因此,與IGIsolatedCookieWebView不同,Cookie仍在應用程序之間共享,但我可以跟蹤他們的添加並在需要時將其刪除。 – mkumaro
@Rob Napier,您好,請您介紹一下如何在iphone和web視圖之間共享cookie。 – defactodeity
@defactodeity,你沒有。 iOS應用程序是沙盒。 –