0

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

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

我应该继承 UIWebView 吗?还是有其他方法可以做到这一点?

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

4

1 回答 1

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;

        }
    }
}
于 2012-08-30T14:06:18.177 回答