0

実際には HTML ファイルであるが、拡張子が .wxyz に変更されたファイルを UIWebView にロードさせるにはどうすればよいですか? ただし、ファイル間のハイパーリンクを含むファイルのグループがあります。ドキュメント内のハイパーリンクは、拡張子が .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 に答える