iOS 如何使用WebView加載Https類型的網(wǎng)頁

我現(xiàn)在做得這個(gè)項(xiàng)目里面包含了第三方支付,在使用的時(shí)候會(huì)有部分界面是調(diào)用網(wǎng)頁來展示的,但是當(dāng)我使用自帶的WebView來加載這些網(wǎng)頁的時(shí)候锚赤,就出錯(cuò)了:NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 當(dāng)時(shí)還不知道题翻,后面在Mac下的瀏覽器打開就說什么是私密鏈接,而且網(wǎng)址是以Https開頭的平夜,百度了下蝶棋,我這才知道原來是SLL沒有設(shè)置。所以在加載Https的需要先用NSURLConnection來訪問站點(diǎn)忽妒,然后在驗(yàn)證身份的時(shí)候玩裙,將該站點(diǎn)設(shè)置為可信任站點(diǎn),最后用WebView重新加載一次就好了段直!

不多說了吃溅,貼代碼:


//首先你得聲明協(xié)議

//然后 你得聲明三個(gè)全局變量

NSURLRequest*_originRequest;

NSURLConnection*_urlConnection;

BOOL_authenticated;

//再在 你需要用WebView加載網(wǎng)頁的地方初始化Request

_originRequest= [NSURLRequestrequestWithURL:[NSURLURLWithString:urlStr]];

[self.allWebViewloadRequest:_originRequest];

//最后就是實(shí)現(xiàn)協(xié)議函數(shù)了

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType

{

NSLog(@"Did start loading: %@ auth:%d", [[requestURL]absoluteString],_authenticated);

if(!_authenticated) {

_authenticated=NO;

_urlConnection= [[NSURLConnectionalloc]initWithRequest:_originRequestdelegate:self];

[_urlConnectionstart];

returnNO;

}

returnYES;

}

-(void)webView:(UIWebView*)webView didFailLoadWithError:(NSError*)error{

// 102 == WebKitErrorFrameLoadInterruptedByPolicyChange

NSLog(@"***********error:%@,errorcode=%d,errormessage:%@",error.domain,error.code,error.description);

if(!([error.domainisEqualToString:@"WebKitErrorDomain"] && error.code==102)) {

//當(dāng)請(qǐng)求出錯(cuò)了會(huì)做什么事情

}

}

#pragmamark-NURLConnectiondelegate

-(void)connection:(NSURLConnection*)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge*)challenge

{

NSLog(@"WebController Got auth challange via NSURLConnection");

if([challengepreviousFailureCount]==0)

{

_authenticated=YES;

NSURLCredential*credential=[NSURLCredentialcredentialForTrust:challenge.protectionSpace.serverTrust];

[challenge.senderuseCredential:credentialforAuthenticationChallenge:challenge];

}else

{

[[challengesender]cancelAuthenticationChallenge:challenge];

}

}

-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response

{

NSLog(@"WebController received response via NSURLConnection");

// remake a webview call now that authentication has passed ok.

_authenticated=YES;

[self.allWebViewloadRequest:_originRequest];

// Cancel the URL connection otherwise we double up (webview + url connection, same url = no good!)

[_urlConnectioncancel];

}

// We use this method is to accept an untrusted site which unfortunately we need to do, as our PVM servers are self signed.

- (BOOL)connection:(NSURLConnection*)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace*)protectionSpace

{

return[protectionSpace.authenticationMethodisEqualToString:NSURLAuthenticationMethodServerTrust];

}

//最后還需要一個(gè)NSURLRequest(NSURLRequestWithIgnoreSSL)的擴(kuò)展,.m文件中只需要一個(gè)函數(shù)就好了鸯檬。

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host

{

returnYES;

}

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末决侈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子喧务,更是在濱河造成了極大的恐慌赖歌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件功茴,死亡現(xiàn)場(chǎng)離奇詭異庐冯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)痊土,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門肄扎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赁酝,你說我怎么就攤上這事犯祠。” “怎么了酌呆?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵衡载,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我隙袁,道長(zhǎng)痰娱,這世上最難降的妖魔是什么弃榨? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮梨睁,結(jié)果婚禮上鲸睛,老公的妹妹穿的比我還像新娘。我一直安慰自己坡贺,他們只是感情好官辈,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著遍坟,像睡著了一般拳亿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愿伴,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天肺魁,我揣著相機(jī)與錄音,去河邊找鬼隔节。 笑死鹅经,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的官帘。 我是一名探鬼主播瞬雹,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼刽虹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起呢诬,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤涌哲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后尚镰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阀圾,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年狗唉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了初烘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡分俯,死狀恐怖肾筐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缸剪,我是刑警寧澤吗铐,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站杏节,受9級(jí)特大地震影響唬渗,放射性物質(zhì)發(fā)生泄漏典阵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一镊逝、第九天 我趴在偏房一處隱蔽的房頂上張望壮啊。 院中可真熱鬧,春花似錦撑蒜、人聲如沸他巨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽染突。三九已至,卻和暖如春辈灼,著一層夾襖步出監(jiān)牢的瞬間份企,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工巡莹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留司志,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓降宅,卻偏偏與公主長(zhǎng)得像骂远,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腰根,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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