我正在应用中实现一个URLProtocol。
=
虽然import Cocoa
class MyURLProtocol: URLProtocol {
override init(request: URLRequest, cachedResponse: CachedURLResponse?, client: URLProtocolClient?) {
super.init(request: request, cachedResponse: cachedResponse, client: client)
}
override class func canInit(with request: URLRequest) -> Bool {
return true
}
override class func canonicalRequest(for request: URLRequest) -> URLRequest {
return request
}
override func startLoading() {
print("loading")
}
}
始终返回true,但canInit(with request: URLRequest)
,init(…)
和canonicalRequest(…)
都不会被调用。
startLoading()
URLProtocol.registerClass
中调用MyURLProtocol
的{{1}}
我不知道该怎么办。昨天,日期代码至少调用了函数。
感谢您的帮助。
答案 0 :(得分:1)
您使用的是URLSession
吗? URLSession
绕过正常的协议注册,而是明确配置URLSessionConfiguration
中的协议。请参阅URLSessionConfiguration.protocolClasses
。
答案 1 :(得分:0)
其实我正在开发一个macOS应用程序,而不是iOS应用程序,但是当我从WKWebView更改为WebView时,它解决了这个问题。
感谢Kevin Ballard发表评论。