gpt4 book ai didi

iphone - 如何从 NSURLProtocol 内部获取请求 UIWebView

转载 作者:行者123 更新时间:2023-12-03 19:16:14 26 4
gpt4 key购买 nike

我的应用程序使用 NSURLProtocol 的子类。应用程序中有多个 UIWebView,对于 NSURLProtocol 中实现的特定算法,我需要知道哪一个 UIWebView 发送了请求。

我的理解是,[self client] 返回的对象应该与请求对象有某种联系。但是 NSURLProtocolClient (即由 [self client] 返回的对象实现的协议(protocol))和底层对象 _NSCFURLProtocolBridge 都没有任何属性/方法来获取请求的发送者。

有人可以帮我出出主意吗?

最佳答案

NSURLRequest 有一个名为 mainDocumentURL 的方法,它返回根文档的 URL。您可以将其保存在 UIWebViewDelegate 方法中,如下所示,

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if([[request.URL absoluteString] isEqualToString:[request.mainDocumentURL absoluteString]])
{
// associate this URL with this UIWebview
}
}

然后,您可以查看 NSURLProtocol 方法中的 mainDocumentURL 来识别 UIWebView。这并不是万无一失的,因为它没有考虑多个 UIWebViews 加载相同 URL 的情况。但这是我能想到的最好的解决方案。

关于iphone - 如何从 NSURLProtocol 内部获取请求 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3367122/

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