iPhone SDK:从自定义URL方案加载资源

时间:2009-12-14 11:17:07

标签: iphone url uiwebview

我有HTML字符串,它是由第三方库使用xml文件创建的。 HTML字符串包含图像和视频的自定义URL(例如:image://)。有没有办法可以处理这些资源加载请求并在UIWebView中正确加载它们?

2 个答案:

答案 0 :(得分:1)

您应该能够将它们更改为指向应用程序包内的文件的文件:// url。

要获得可以使用的路径:

NSString *path = [[NSBundle mainBundle] pathForResource:@"MyFileInResources" ofType:@".png"];

请注意,您需要使用以下命令转义:

NSString *escapedPath = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

答案 1 :(得分:1)

我们需要创建NSURLProtocol的子类并重新实现以下可以处理自定义URL方案的方法

+(BOOL)canInitWithRequest:(NSURLRequest*)request
+(NSURLRequest*)canonicalRequestForRequest:(NSURLRequest*)request
+(BOOL)requestIsCacheEquivalent:(NSURLRequest*)a toRequest:(NSURLRequest*)b
-(void)startLoading
-(void)stopLoading

当应用程序按以下方式启动时,我们还必须注册此自定义URL协议类

[NSURLProtocol registerClass:[CustomURLProtocol class]];