2
從NSURLSession.h ...定製NSURLProtocol子類不可用於背景會話
/* An optional array of Class objects which subclass NSURLProtocol.
The Class will be sent +canInitWithRequest: when determining if
an instance of the class can be used for a given URL scheme.
You should not use +[NSURLProtocol registerClass:], as that
method will register your class with the default session rather
than with an instance of NSURLSession.
Custom NSURLProtocol subclasses are not available to background
sessions.
*/
@property (nullable, copy) NSArray<Class> *protocolClasses;
定製NSURLProtocol子類不可用於背景 會議。
限制自定義NSURLProtocol子類只能在前臺會話中觸發的優點是什麼?
它實際上比這更微妙一點。它永遠不會將你的代碼注入到另一個進程中。現在,後臺會話通過使用NSXPC在您的應用程序中調用委託方法。如果您的應用不在那裏,它會盡其所能,並且在某些情況下,您的應用會重新啓動。如果協議處理必須通過您的應用程序,那麼在您的應用程序未運行的情況下,它將永遠無法做任何有用的事情,這將徹底打破基礎級別的背景模型。對於WKWebView,我只能假設原因是由所有這些XPC請求引起的性能下降.... – dgatwood