gpt4 book ai didi

ios - WKWebView 如何在 WKNavigationDelegate 方法中找到请求

转载 作者:行者123 更新时间:2023-11-28 23:28:40 34 4
gpt4 key购买 nike

我正在尝试从 UIWebView 迁移到 WKWebView。 shouldStartLoadWithRequest 委托(delegate)方法我可以找到如下请求:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"request: %@", request);
if ([request.URL.host isEqualToString:@"jsbridge"])
{
NSString* requestType = [request.URL.pathComponents objectAtIndex:2];
NSString* key = [request.URL.pathComponents objectAtIndex:3];
NSLog(@"requestType: %@ - key: %@", requestType, key);
if([requestType isEqualToString:@"audio"])
{
[self playAudio:key];
}
return YES;
}

我需要帮助在 WKNavigationDelegate 方法中找到相同的请求。我是否使用 didCommit 或 didFinishNavigation 方法,如果是,我如何找到它来自的请求?有人能给我举个例子吗?希望我能做到这一点是 Swift,但我必须坚持使用 Objective-C。提前致谢。

最佳答案

据我所知,UIWebView 中的 webView:shouldStartLoadWithRequest:navigationType: 相当于 WKWebView 中的 webView:decidePolicyForNavigationAction:decisionHandler:

webView:decidePolicyForNavigationAction:decisionHandler: 中,您可以从 navigationAction 获取请求。

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {

NSURLRequest *request = navigationAction.request;

// Do whatever you want with the request

decisionHandler(WKNavigationActionPolicyAllow);
}

关于ios - WKWebView 如何在 WKNavigationDelegate 方法中找到请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57583733/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com