我使用自定义NSURLProtocol为了在WebView获得响应之前做一些事情,除了这个网址https://dou.bz/23o8PS
之外,一切都很顺利。
如果我停止使用NSURLProtocol,只需让WebView加载一个请求(带URL的init),它就可以了。但是如果数据是从协议加载的,那么WebView似乎不会将其视为HTML文件:
出了什么问题?
答案 0 :(得分:2)
我检查标题,发现是:
Content-Type: text/plain
也许其他链接是:
Content-Type: text/html
答案 1 :(得分:0)
您还必须将响应返回到Webview。将以下三行放在startLoading
协议方法的末尾:
[[self client] URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];
[[self client] URLProtocol:self didLoadData: body];
[[self client] URLProtocolDidFinishLoading: self];
response
对象是NSHTTPURLResponse
的一个实例,您必须在其中设置标头的字典(特别是,以任何方式随响应接收的HTTP标头)。
body
是您已经在方法中使用的NSData