文件扩展名更改

时间:2012-08-30 13:37:06

标签: html ios uiwebview file-extension

如何让UIWebView加载一个真正是HTML文件但扩展名为.wxyz的文件?但是,有一组文件包含文件之间的超链接。文档中的超链接指向扩展名为.html的文件。

所以,我需要做的是让UIWebView识别.wxyz == .html并打开文件,当点击这样的链接时<a href="myHTML.html">A Link</a>将打开文件myHTML.wxyz。

我应该是UIWebView的子类吗?还是有另一种方法可以做到这一点吗?

所有这些.wxyz文件都将包含在应用程序中,而不是服务器上。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用UIWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:执行此操作 - 只检测具有等效wxyz资源的html请求,返回NO,然后请求wxyz类型。下面的代码应该给出它的要点:

- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    // if it's not a link click, return YES
    if (navigationType != UIWebViewNavigationTypeLinkClicked) {
        return YES;
    }

    NSString *ext= [[request URL] pathExtension];
    if ([@"html" isEqualToString:ext]) {
        if (/* filename matches one of your wxyz resources */) {

            // user clicked an html file that should be loaded via wxyz:
            NSURL *newURL = [[request URL] URLByDeletingPathExtension];
            newURL = [newURL URLByAppendingPathExtension:@"wxyz"];
            NSURLRequest *newRequest = [NSURLRequest requestWithURL:newURL];
            [webView loadRequest:newRequest];
            return NO;

        }
    }
}