2010-12-20 60 views
5

爲了這些目的,假設我有一個包含單個UIWebview的應用程序。iPhone - UIWebview不保存身份驗證到網站

我正在加載對以下任何站點的請求:臉譜,Gmail,推特等,並接收登錄畫面。

事情是 - 如果我登錄並重新啓動應用程序,我將不得不再次通過登錄屏幕。

在Mobile Safari/Google應用程序中,例如,我會保留我的登錄cookie /會話詳細信息/ whatnot,並且不需要再次輸入我的用戶憑證。這是我想要的行爲。

的東西,我試過:

  • 通過的NSURLRequest從NSHTTPCookieStorage發送的cookie。
  • 堅持自己的cookie到NSUserDefaults,但沒有運氣。

我該如何實現Google Apps的行爲Mobile Safari &?

+2

這是絕對有可能,因爲我現在,谷歌的應用程序不會看到它。但是如何? – Gilbert 2010-12-20 19:05:04

+0

嗨@吉爾伯特我一直在試圖達到你指定的結果。您在下面將答案標記爲已接受。我知道如何在應用程序關閉/啓動時保存和/或加載Cookie,但是請問您如何從NSURLRequest獲取Cookie? – ShayanK 2012-05-24 14:05:18

+2

除非另有說明,否則NSURLConnection會自動保存您收到的查看NSURLRequest的Cookie。 – Gilbert 2012-05-28 15:06:20

回答

5

應用程序終止時應該歸檔並保存cookie,並在應用程序激活時重新加載。你可以做到這一點的:

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:cookies forURL:url mainDocumentURL:nil]; // where cookies is the unarchived array of cookies

+2

顯然我搞砸了歸檔。感謝你,我三重檢查了它,它自動工作。 – Gilbert 2010-12-21 04:24:26

-1

使用asiHTTPrequest類。這對我的項目幫助很大。

+2

請您詳細說明如何使用ASIHTTPRequest實現我的目標? – Gilbert 2010-12-20 18:51:37

+0

您可以使用此代碼來處理使用ASIHTTPRequest的cookie:NSHTTPCookie * cookie = [[[NSHTTPCookie alloc] initWithProperties:properties] autorelease]; – 2010-12-21 04:02:17