I have HTML string which is created using an xml file by a third party library. The HTML string contains custom URLs for images and videos (Ex:image://). Is there is way by I can handle these resource load request and load them correctly in UIWebView?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You should be able to change them to a file:// url that points to a file inside the application bundle.
To get the path you can use:
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyFileInResources" ofType:@".png"];
Note that you will need to escape this using:
NSString *escapedPath = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
回答2:
We need to create a subclass of NSURLProtocol and re-implement the following methods that can handle the custom URL scheme
+(BOOL)canInitWithRequest:(NSURLRequest*)request
+(NSURLRequest*)canonicalRequestForRequest:(NSURLRequest*)request
+(BOOL)requestIsCacheEquivalent:(NSURLRequest*)a toRequest:(NSURLRequest*)b
-(void)startLoading
-(void)stopLoading
We also have to register this custom URL protocol class when the app launches in the following way
[NSURLProtocol registerClass:[CustomURLProtocol class]];