这是我用来允许证书的代码:
@interface NSURLRequest(DummyInterface)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host;
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host;
@end
@implementation NSURLRequest(DummyInterface)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
return [host isEqualToString:@"mysite.com"];
}
@end
我会这样初始化我的WKWebView:
NSURL *urlReq = [NSURL URLWithString:@"mysite.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:urlReq];
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[urlReq host]];
WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
mainWebView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
[mainWebView setNavigationDelegate:self];
[mainWebView loadRequest:request];
对于http网站,它运作得很好,但是在使用https时出现了以下错误:
此服务器的证书无效。您可能正在连接到一个假冒“mysite.com”的服务器,这可能会使您的机密信息受到风险。
当我使用UIWebView并实现“canAuthenticateAgainstProtectionSpace”函数时,它可以正常工作,但现在我不知道该怎么做。
我是否遗漏了什么或者WKWebView不能处理HTTPS?