【Swift】 WKWebView https 加載不受信任的站點

  

  公司要對接一個第三方平臺,然後就有了一個可奇葩的邏輯,用戶填寫完相關信息後,點擊提交,然後服務器返回一個網頁的源代碼……需要用WebView加載這個網頁。

實現的時候發現,我自己寫的簡單的網頁源碼可以加載,但是服務器返回的就是無法加載。後來把源碼保存成文件以後,用瀏覽器打開發現,該網頁鏈接的站點是一個不受信任的站點,應該是因爲服務器證書無效而不受信任。

self.wkWeb.navigationDelegate = self

// 實現以下代理方法
func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
     let cred = URLCredential.init(trust: challenge.protectionSpace.serverTrust!)
     completionHandler(.useCredential, cred)
}

  有朋友說還需要在 plist 文件中設置:

  將Allow Arbitrary Loads in Web Content 置爲 YES,或者將Allow Arbitrary Loads置位YES

  但是我實際測試以後發現,不設置也可以打開,可能是具體情況不同的原因吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章