我在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文件。
委托方法包含如下所示的错误实例:
错误域= NSURLErrorDomain代码= -1022“资源不可能 因为App Transport Security策略需要使用a而加载 安全连接。“UserInfo = {NSUnderlyingError = 0x7fbaa253ba20 {错误 Domain = kCFErrorDomainCFNetwork Code = -1022“资源不能 因为App Transport Security策略需要使用a而加载 安全连接。“ 的UserInfo = {NSErrorFailingURLStringKey = requestedwebsite.com, NSLocalizedDescription =无法加载资源,因为 应用程序传输安全策略要求使用安全 连接。, NSErrorFailingURLKey = requestedwebsite.com}}, NSErrorFailingURLStringKey = requestedwebsite.com, NSErrorFailingURLKey = requestedwebsite.com, NSLocalizedDescription =无法加载资源,因为 应用程序传输安全策略要求使用安全 连接。}
我的问题是如何保持我的API请求工作并使UIWebView也能正常工作。
答案 0 :(得分:3)
在public void skipFrames(int offset){
frameCounter = offset;
}
词典中添加此例外:
NSAppTransportSecurity