NSExceptionDomains 的設(shè)置方法如下, 比如我們要將 swiftcafe.io 這個(gè)域名排除在 ATS 驗(yàn)證之外,就可以這樣:
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/><key>NSExceptionDomains</key><dict><key>swiftcafe.io</key><dict><key>NSExceptionAllowsInsecureHTTPLoads</key><true/></dict></dict></dict>
上面說的是在我們已經(jīng)確定 App 所訪問的數(shù)據(jù)范圍的情況下的處理方法。 但還有一種情況, 如果我們開發(fā)的是類似瀏覽器的 App。這樣用戶需要輸入任意的地址,那怎么辦呢? 我們不可能把所有的域名都寫到 NSExceptionDomains 里面。
這就可以使用 iOS 10 對(duì) ATS 提供的一個(gè)新屬性 NSAllowsArbitraryLoadsInWebContent。 顧名思義了,就是只允許加載任意類型的 web 內(nèi)容。這樣我們的 WKWebView 就可以加載任何類型的頁面了。
使用 NSAllowsArbitraryLoadsInWebContent 的例子:
<key>NSAppTransportSecurity</key><dict> <key>NSAllowsArbitraryLoadsInWebContent</key> <true/></dict>