如何监听WKWebView的http请求?

How to monitor http requests from WKWebView?

所以,我认为这是一个非常明确的问题。 是关于监控 ajax 请求。我试过了,但没有按我的意愿工作。

每次发送、接收请求以及在 WKWebView 中更改浏览 link 时,如何在我的本机 iOS Obj-C 应用程序中调用函数?

好的,我找到方法了。

您可以创建一个新的 class(我们称之为 MyURLProtocol),其中 NSURLProtocol 作为子 class。然后把这个函数加到MyURLProtocol:

+ (BOOL)canInitWithRequest:(NSURLRequest *)request {
    NSLog(@"URL = %@", request.URL.absoluteString);
    return NO;
}

每次您的 webview 发出请求时都会调用此函数。然后你需要在加载系统中注册这个协议。在您的 Appdelegate.m 文件中包含您的 class 和 add/replace didFinishLaunchingWithOptions 函数:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [NSURLProtocol registerClass:[MyURLProtocol class]];
    return YES;
}

一切就绪。现在您可以编辑 canInitWithRequest 函数并对请求执行您想要的操作。