【发布时间】:2016-01-18 01:32:47
【问题描述】:
我的 info.plist 文件中有这些行:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mysebserver.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
所以它与我的 API 调用完美配合。
在我的视图控制器中,我有 UIWebView 尝试显示网页内容:
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.webSiteUrlSting] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:30];
[self.theWebView loadRequest:request];
在 iOS7 和 iOS8 上运行良好,但在 iOS9 上调用 UIWebView 委托 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 后显示错误:
App Transport Security 已阻止明文 HTTP (http://) 资源 加载,因为它不安全。可以通过以下方式配置临时异常 您应用的 Info.plist 文件。
委托方法包含如下所示的错误实例:
Error Domain=NSURLErrorDomain Code=-1022 "资源不能被 加载,因为应用传输安全策略需要使用 安全连接。” UserInfo={NSUnderlyingError=0x7fbaa253ba20 {错误 Domain=kCFErrorDomainCFNetwork 代码=-1022 "资源不能被 加载,因为应用传输安全策略需要使用 安全连接。” UserInfo={NSErrorFailingURLStringKey=requestedwebsite.com, NSLocalizedDescription=资源无法加载,因为 应用传输安全策略需要使用安全的 联系。, NSErrorFailingURLKey=requestedwebsite.com}}, NSErrorFailingURLStringKey=requestedwebsite.com, NSErrorFailingURLKey=requestedwebsite.com, NSLocalizedDescription=资源无法加载,因为 应用传输安全策略需要使用安全的 连接。}
我的问题是如何保持我的 API 请求正常工作并使 UIWebView 正常工作。
【问题讨论】:
标签: ios uiwebview ios9 nsurlrequest