Ios 如何监视来自WKWebView的http请求?

Ios 如何监视来自WKWebView的http请求?,ios,objective-c,httprequest,wkwebview,Ios,Objective C,Httprequest,Wkwebview,所以,我认为这是一个非常明确的问题。是关于监视ajax请求的。我试过了,但没有达到我想要的效果 每次在WKWebView中发送、接收请求和更改浏览链接时,如何在本机iOS Obj-C应用程序中调用函数?好的,我找到了一种方法 您可以创建一个新类,我们称之为MyURLProtocol,它有一个子类。然后将此函数添加到MyURLProtocol: 每次webview发出请求时都会调用此函数。然后你需要向加载系统注册这个协议。在Appdelegate.m文件中包含类,并使用以下命令添加/替换didFi

所以,我认为这是一个非常明确的问题。是关于监视ajax请求的。我试过了,但没有达到我想要的效果

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

好的,我找到了一种方法

您可以创建一个新类,我们称之为MyURLProtocol,它有一个子类。然后将此函数添加到MyURLProtocol:

每次webview发出请求时都会调用此函数。然后你需要向加载系统注册这个协议。在Appdelegate.m文件中包含类,并使用以下命令添加/替换didFinishLaunchingWithOptions函数:

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

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

在Swift iOS 13中,当应用程序中有多个网络视图时,该功能似乎不起作用:/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [NSURLProtocol registerClass:[MyURLProtocol class]];
    return YES;
}