моя системная версия - iOS 11.2.6, но я думаю, что в более высокой версии такой же вид.я отправляю запрос в wkwebview, как это, и он прекрасно работает
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.url]];
request.HTTPMethod = @"POST";
request.HTTPBody = [postStr dataUsingEncoding:NSUTF8StringEncoding];
WKWebView *webView = [[WKWebView alloc]initWithFrame:rectDown];
webview.frame = self.view.frame;
[webview loadRequest:request];
[self.view addSubview:webview];
, но если я реализую метод делегата definePolicyForNavigationAction наподобие down, сервер nodejs не сможет получить какие-либо почтовые данные
-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:
(WKNavigationAction *)navigationAction decisionHandler:(void (^)
(WKNavigationActionPolicy))decisionHandler{
decisionHandler(WKNavigationActionPolicyAllow);
}
и я хочу повторно использовать объект wkwebview, у кого есть хорошая идея?
дополнительно я обнаружил, что при первой загрузке запроса post и обратно, затем перезагрузке и повторной загрузке снова, это всегда работает правильно, но если я повторно используюwkwebview загружает любой другой URL-адрес, например, Google, тогда он больше не может загружать запрос на публикацию. Если не реализован метод делегата definePolicyForNavigationAction, он всегда будет работать нормально.Итак, это конфликт между definePolicyForNavigationAction и повторным использованием wkwebview?
Я использую этот код для форматирования повторного использования wkwebview при удалении контроллера wkwebview
-(void)webFormat{
if (@available(iOS 9.0,*)) {
NSSet *websiteDataTypes = [NSSet setWithObjects:WKWebsiteDataTypeDiskCache,
WKWebsiteDataTypeOfflineWebApplicationCache,
WKWebsiteDataTypeMemoryCache,
nil];
// NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
}];
}
[self.configuration.userContentController removeScriptMessageHandlerForName:kScriptHandlerName];
[self.configuration.userContentController removeAllUserScripts];
[self stopLoading];
[self loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
self.scrollView.delegate = nil;
[self setUIDelegate:nil];
}