如何监听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
函数并对请求执行您想要的操作。
所以,我认为这是一个非常明确的问题。
每次发送、接收请求以及在 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
函数并对请求执行您想要的操作。