WKWebView遇到的問題

參考鏈接:

http://www.reibang.com/p/403853b63537

http://www.reibang.com/p/186a3b236bc9

1. 用WKwebView時(shí)递惋,怎么通過post傳數(shù)據(jù)給服務(wù)器

當(dāng)我們用UIWebView時(shí),如果要post數(shù)據(jù)給服務(wù)器继低,那代碼很簡單,如下

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:Message_Login_path]];

[request setHTTPMethod:@"POST"];

[request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];

[weakSelf.webView loadRequest:request];

但是我們用WKWebView時(shí),再通過上面的代碼就無法將參數(shù)傳過去泵琳,網(wǎng)上找到了一種方法

1.創(chuàng)建JSPOST.html文件,把下列代碼復(fù)制過去

2.將對(duì)應(yīng)的JavaScript代碼通過加載本地網(wǎng)頁的形式加載到WKWebView(我是在登錄時(shí)需要post數(shù)據(jù)過去驗(yàn)證誊役,所以获列,下面的代碼是在將要push到登錄頁面前,加載js)

// 獲取JS所在的路徑

NSString *path = [[NSBundle mainBundle] pathForResource:@"JSPOST" ofType:@"html"];

// 獲得html內(nèi)容

NSString *htmlJS = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

// 加載js

[self.wkWebView loadHTMLString:htmlJS baseURL:nil];

// JS發(fā)送POST的Flag蛔垢,為真的時(shí)候會(huì)調(diào)用JS的POST方法

self.needLoadJSPOST = YES;

3.post提交數(shù)據(jù)并更改self.needLoadJSPOST=NO击孩,避免重復(fù)調(diào)用。

//post的數(shù)據(jù)鹏漆,注意數(shù)據(jù)格式(可以將上面的JSPOST.html里的代碼給服務(wù)器人員巩梢,確定下要傳過去的格式是什么樣的,并且確定服務(wù)器那邊是否需要特殊處理這些數(shù)據(jù))

NSString *postData = self.wkPostData;

//post的路徑

NSString *urlStr = Message_Login_path;

NSString *jscript = [NSString stringWithFormat:@"post('%@', %@);",urlStr,postData];

[self.wkWebView evaluateJavaScript:jscript completionHandler:^(id _Nullable object, NSError * _Nullable error) {

self.wkPostData = nil;

NSLog(@"%@",object);

NSLog(@"error=%@",error);

}];


2.wkwebview加載h5要調(diào)用電話功能和APPStore

UIWebview 調(diào)用電話或者APPStore無需做其他處理艺玲,但是WKWebVIew不做處理就不可以

//調(diào)用電話

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler

{

NSURL *url = navigationAction.request.URL;

if ([url.scheme isEqualToString:@"tel"]) {

UIApplication *app = [UIApplication sharedApplication];

if ([app canOpenURL:url]) {

[app openURL:url];

decisionHandler(WKNavigationActionPolicyCancel);

return;

}

}

}

//APPStore

if ([url.absoluteString containsString:@"itunes.apple.com"]) {

if ([app canOpenURL:url])

{

[app openURL:url];

decisionHandler(WKNavigationActionPolicyCancel);

}

}

3.清理緩存

由于修改默寫頁面的數(shù)據(jù)時(shí)且改,需要回調(diào)到先前的某些來顯示,這時(shí)由于緩存存在板驳,導(dǎo)致顯示的頁面里還是顯示前些的數(shù)據(jù)又跛,無法更新到最新的H5頁面∪糁危可以通過清理緩存來實(shí)現(xiàn)獲取最新的H5頁面

UIWebView清理緩存:

通過調(diào)用一下代碼就可以清理緩存

[[NSURLCache sharedURLCache] removeAllCachedResponses];

我們想清理緩存更新H5頁面慨蓝,僅僅是想清除某個(gè)H5頁面緩存感混,先前有試過針對(duì)某個(gè)頁面進(jìn)行清除,但是一直不成功礼烈,無奈只能清除所有的內(nèi)存來達(dá)到目的弧满。

WKWebView清理緩存:

WkWebView是IOS8出現(xiàn)的,但不是很完善此熬,例如設(shè)置Agent的customUserAgent屬性和清理緩存的方法等等都是IOS9才出現(xiàn)的庭呜,因?yàn)轫?xiàng)目中有用到,所以我是適配IOS9才用wkwebview犀忱。

網(wǎng)上清理緩存的方法是

NSSet *websiteDataTypes

= [NSSet setWithArray:@[

WKWebsiteDataTypeDiskCache,

WKWebsiteDataTypeMemoryCache

]];

NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];

// Execute

[[WKWebsiteDataStore defaultDataStore] removeDataOf? Types:websiteDataTypes? modifiedSince:dateFrom completionHandler:^{

}];

其中websiteDataTypes存放的是要清除的類型募谎,也可以通過 NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];清除全部的緩存類型。

通過這個(gè)方法我百試百錯(cuò)阴汇, 我先前一直是放在- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler 中執(zhí)行数冬。后來改成放在

- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation 中就成功了 。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搀庶,一起剝皮案震驚了整個(gè)濱河市拐纱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哥倔,老刑警劉巖秸架,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咆蒿,居然都是意外死亡咕宿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門蜡秽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來府阀,“玉大人,你說我怎么就攤上這事芽突∈哉悖” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵寞蚌,是天一觀的道長田巴。 經(jīng)常有香客問我,道長挟秤,這世上最難降的妖魔是什么壹哺? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮艘刚,結(jié)果婚禮上管宵,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好箩朴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布岗喉。 她就那樣靜靜地躺著,像睡著了一般炸庞。 火紅的嫁衣襯著肌膚如雪钱床。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天埠居,我揣著相機(jī)與錄音查牌,去河邊找鬼。 笑死滥壕,一個(gè)胖子當(dāng)著我的面吹牛纸颜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捏浊,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撞叨!你這毒婦竟也來了金踪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤牵敷,失蹤者是張志新(化名)和其女友劉穎胡岔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枷餐,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡靶瘸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毛肋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怨咪。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖润匙,靈堂內(nèi)的尸體忽然破棺而出诗眨,到底是詐尸還是另有隱情,我是刑警寧澤孕讳,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布匠楚,位于F島的核電站,受9級(jí)特大地震影響厂财,放射性物質(zhì)發(fā)生泄漏芋簿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一璃饱、第九天 我趴在偏房一處隱蔽的房頂上張望与斤。 院中可真熱鬧,春花似錦、人聲如沸幽告。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冗锁。三九已至齐唆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冻河,已是汗流浹背箍邮。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叨叙,地道東北人锭弊。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像擂错,于是被迫代替她去往敵國和親味滞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 關(guān)于UIWebView的介紹钮呀,相信看過上文的小伙伴們剑鞍,已經(jīng)大概清楚了吧,如果有問題爽醋,歡迎提問蚁署。 本文是本系列...
    CoderLF閱讀 8,967評(píng)論 2 12
  • iOS 的 Cookie 存取 https://juejin.im/entry/58d4c4cc44d904006...
    Farmers閱讀 5,928評(píng)論 0 16
  • WKWebView 是蘋果在 WWDC 2014 上推出的新一代 webView 組件,用以替代 UIKit 中笨...
    Aiana閱讀 4,588評(píng)論 1 8
  • 轉(zhuǎn)載:http://www.cnblogs.com/NSong/p/6489802.html 導(dǎo)語 WKWebVi...
    李小威閱讀 4,858評(píng)論 8 9
  • 寫給蘇志燮的信之二親愛的蘇蘇蚂四,今天早醒光戈, 望著窗外微雨的天空發(fā)呆,不愿起床遂赠,就這樣任想你的思緒在空氣里游蕩久妆,一點(diǎn)點(diǎn)...
    卿云lusindaen閱讀 1,146評(píng)論 0 2