Ответ 1
Случай: 1
Вы можете ввести JS в WKWebview в момент создания документа или закончить загрузку документа и подключить java script метод XMLHTTPRequest open с помощью вашей пользовательской реализации, чтобы добавить этот настраиваемый заголовок для всех запросов AJAX из WKWebView.
пример кода
NSString *XMLHTTPRequestHookJSPath = [[NSBundle mainBundle] pathForResource:@"XMLHTTPRequestHook.js" ofType:nil];
NSString *kXMLHTTPRequestHookJS = [NSString stringWithContentsOfFile:XMLHTTPRequestHookJSPath encoding:NSUTF8StringEncoding error:NULL];
WKUserContentController *contentController = [[WKUserContentController alloc] init];
WKUserScript *script = [[WKUserScript alloc] initWithSource:kXMLHTTPRequestHookJS injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:NO];
[contentController addUserScript:script];
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.userContentController = contentController;
self.lastUsedWebView = [[WKWebView alloc] initWithFrame:self.webContainerView.bounds configuration:configuration];
self.lastUsedWebView.navigationDelegate = self;
И в файле XMLHTTPRequestHook.js попробуйте связать XMLHttpRequest с вашей пользовательской реализацией, чтобы добавить этот настраиваемый заголовок и вызвать исходный открытый метод.
Случай 2 Если вы хотите, чтобы этот заголовок добавлялся при загрузке URLRequest в WKWebview, вы можете добавить этот заголовок в NSMutableRequest, как показано ниже, и загрузить этот запрос в WKWebview. Однако с помощью этого метода у вас может не быть этого заголовка во всех вызовах AJAX из WKWebview.
пример кода:
WKWebView * webView = /*set up your webView*/
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/index.html"]];
[request addValue:@"app://myApp" forHTTPHeaderField:@"Access-Control-Allow-Origin"];
// use stringWithFormat: in the above line to inject your values programmatically
[webView loadRequest:request];
Надеюсь, что это поможет.