iOS WKWebView 添加 cookie

今天遇到了一個問題雏胃,項目中需要加載web界面请毛,使用WKWebView耗內存小、加載速度快瞭亮、與JS的交互好方仿,所以就嘗試使用WKWebView,就遇到了一個問題:request請求的url并不是原生的html统翩,而是從服務器端獲取到的接口仙蚜,只有在用戶登錄的情況下才會加載,如下圖所示:

加載不出來想要的html界面厂汗,網上查了好久也大概了解到時cookie的原因委粉,需要獲取到cookie并添加到request請求中,下面是我的解決辦法:

WKWebViewConfiguration* webConfiguration = [[WKWebViewConfiguration alloc] init];

WKUserContentController* contentController = [[WKUserContentController alloc] init];

WKPreferences *preferences = [WKPreferences new];

webConfiguration.preferences = preferences;

//ESWeakSelf:這是一個宏娶桦,防止MessageHandler循環(huán)引用

ESWeakSelf

[contentController addScriptMessageHandler:__weakSelf name:@"rule"];

[contentController addScriptMessageHandler:__weakSelf name:@"minimalInvasiveActivityProtocolClick"];

self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight-64) configuration:webConfiguration];

self.webView.navigationDelegate = self;

self.webView.UIDelegate = self;

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

/******************************獲取cookies***********************************/

NSArray* cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];

NSHTTPCookie* realCookie = nil;

for (NSHTTPCookie* cookie in cookies) {

//[NSObject baseURLStr] :接口地址的請求頭

NSRange range = [[NSObject baseURLStr] rangeOfString:cookie.domain];

//如過找到了

if (range.location != NSNotFound) {

realCookie = cookie;

break;

}

}

//下面這個取cookie的方法贾节,每個項目的name值可能不一樣,要要斷點查看:

NSString* cookieValue = [NSString stringWithFormat:@"app=%@;",realCookie.value];

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

/******************************獲取cookies***********************************/

if (self.urlString) {

[self.webView loadRequest:request];

}

else if (self.htmlString)

{

[self.webView loadHTMLString:self.htmlString baseURL:nil];

}

[self.view addSubview:self.webView];

[self.webView mas_makeConstraints:^(MASConstraintMaker *make) {

make.edges.mas_offset(UIEdgeInsetsMake(0, 0, 0, 0));

}];

以上就是我的解決辦法衷畦,希望會對大家有些幫助栗涂,么么

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市霎匈,隨后出現的幾起案子戴差,更是在濱河造成了極大的恐慌,老刑警劉巖铛嘱,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暖释,死亡現場離奇詭異袭厂,居然都是意外死亡,警方通過查閱死者的電腦和手機球匕,發(fā)現死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門纹磺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亮曹,你說我怎么就攤上這事橄杨。” “怎么了照卦?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵式矫,是天一觀的道長。 經常有香客問我役耕,道長采转,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任瞬痘,我火速辦了婚禮故慈,結果婚禮上,老公的妹妹穿的比我還像新娘框全。我一直安慰自己察绷,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布津辩。 她就那樣靜靜地躺著拆撼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丹泉。 梳的紋絲不亂的頭發(fā)上情萤,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天鸭蛙,我揣著相機與錄音摹恨,去河邊找鬼。 笑死娶视,一個胖子當著我的面吹牛晒哄,可吹牛的內容都是我干的。 我是一名探鬼主播肪获,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼寝凌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了孝赫?” 一聲冷哼從身側響起较木,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎青柄,沒想到半個月后伐债,有當地人在樹林里發(fā)現了一具尸體预侯,經...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年峰锁,在試婚紗的時候發(fā)現自己被綠了萎馅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虹蒋,死狀恐怖糜芳,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情魄衅,我是刑警寧澤峭竣,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站晃虫,受9級特大地震影響邪驮,放射性物質發(fā)生泄漏。R本人自食惡果不足惜傲茄,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一毅访、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盘榨,春花似錦喻粹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至山憨,卻和暖如春查乒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背郁竟。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工玛迄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棚亩。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓蓖议,卻偏偏與公主長得像,于是被迫代替她去往敵國和親讥蟆。 傳聞我的和親對象是個殘疾皇子勒虾,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內容

  • 前言 關于UIWebView的介紹,相信看過上文的小伙伴們瘸彤,已經大概清楚了吧修然,如果有問題,歡迎提問岭粤。 本文是本系列...
    CoderLF閱讀 8,963評論 2 12
  • 前言 關于UIWebView的介紹啃奴,相信看過上文的小伙伴們,已經大概清楚了吧雄妥,如果有問題最蕾,歡迎提問。 本文是本系列...
    Dark_Angel閱讀 28,869評論 67 291
  • 1老厌、加載網頁 WKWebView *webView = [[WKWebView alloc] initWithFr...
    LearningCoding閱讀 3,104評論 0 2
  • 公司開始讓做一個新iOS項目瘟则,由于蘋果的更新需要每次發(fā)版本審核,沒法像服務器一樣實時更新枝秤,技術部就討論出原生+HT...
    奶茶007閱讀 1,778評論 16 9
  • 對于做飯這件事我以前也是不懂得去享受它淀弹,但做得時候還是會去精益求精丹壕,色香味俱全,后來覺得不懂得去享受它其實就是一種...
    陳默獨閱讀 95評論 0 0