这是我用来允许证书的代码:
@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 吗?