淺談iOS中的WKWebView添加cookie

來源:互聯網
上載者:User

最近開發新功能,其中有載入網頁的需求,而最近又瞭解到了WKWebView,說是耗記憶體小、載入速度快、與JS的互動好。因為需要與網頁進行互動,而之前使用UIWebView發現與網頁的互動並不是很好,於是這次決定使用WKWebView。

在體會著使用新控制項且更好的控制項的喜悅的時候,一個新的問題出現了--載入網頁,後台無法及時擷取cookie。後台無法及時擷取cookie,在載入網頁的時候就無法載入到正確的資料。(需要多載入幾次網頁,才能載入到正確的資料)

在查閱相關資料後,發現在使用WKWebView的時候需要我們手動添加cookie到網頁中。而之前使用的UIWebView會自動cookie,所有也就不用我們擔心後台無法及時擷取cookie的問題。

在使用WKWebView的時候手動添加cookie:

 NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary];

    NSMutableString *cookieValue = [NSMutableString stringWithFormat:@""];

    NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];

    for (NSHTTPCookie *cookie in [cookieJar cookies]) {

        [cookieDic setObject:cookie.value forKey:cookie.name];

    }

    

    // cookie重複,先放到字典進行去重,再進行拼接

    for (NSString *key in cookieDic) {

        NSString *appendString = [NSString stringWithFormat:@"%@=%@;", key, [cookieDic valueForKey:key]];

        [cookieValue appendString:appendString];

    }

    NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.url]];

    [request addValue:cookieValue forHTTPHeaderField:@"Cookie"];

    NSLog(@"添加cookie");

    [self.webView loadRequest:request];

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.