Android WebViewClient';s shouldInterceptRequest方法:iOS中是否有类似的方法?

Android WebViewClient';s shouldInterceptRequest方法:iOS中是否有类似的方法?,ios,objective-c,uiwebview,Ios,Objective C,Uiwebview,在Android中,我可以使用WebViewClient的方法来定制WebView对特定URL的处理。但是,我在iOS的UIWebView和UIWebViewDelegate中找不到任何等效的东西。是否有任何方法可以达到在iOS中进行shouldInterceptRequest的相同目的,即允许我返回资源请求的数据 我想做的是使web视图支持一些私有图像格式(请参见问题:) 非常感谢您的建议。在UIKit中没有完全相同的方法,但是您可以通过实现-[UIWebViewDelegate webVie

在Android中,我可以使用WebViewClient的方法来定制WebView对特定URL的处理。但是,我在iOS的UIWebView和UIWebViewDelegate中找不到任何等效的东西。是否有任何方法可以达到在iOS中进行shouldInterceptRequest的相同目的,即允许我返回资源请求的数据

我想做的是使web视图支持一些私有图像格式(请参见问题:)


非常感谢您的建议。

在UIKit中没有完全相同的方法,但是您可以通过实现
-[UIWebViewDelegate webView:webView:shouldStartLoadWithRequest:navigationType://code>来获得相同的效果。在这个方法中,您可以调用
-[UIWebView加载数据:MIMEType:textEncodingName:baseURL:][/code>来加载您自己的数据,然后返回NO,这样web视图就不会尝试加载自己的数据。

是正确的方法

见以下参考资料:
,和。

您提到的方法是为整个页面而不是页面中的每个资源(如)调用的,这意味着我必须在加载之前解析和复制整个页面。我说的对吗?它是为页面的各个部分调用的,我不确定是否为每个图像调用,但我想应该是这样的,因为每个图像都需要一个单独的url请求。试试看,让我们知道!它是为整个页面(或框架)调用的,但不是为每个资源调用的。是的
shouldStartLoadWithRequest:
相当于Android的
shouldOverrideUrlLoading
,它仅在页面URL更改时调用,而不是为从浏览器检索到的每个资源调用的
shouldInterceptRequest
。所以这并不能真正回答OP的问题@盛斌蒙的回答是正确的。补充:NSURLProtocol与WKWebView不一致。看见