如何让UIWebView加载一个真正是HTML文件但扩展名为.wxyz的文件?但是,有一组文件包含文件之间的超链接。文档中的超链接指向扩展名为.html的文件。
所以,我需要做的是让UIWebView识别.wxyz == .html并打开文件,当点击这样的链接时<a href="myHTML.html">A Link</a>
将打开文件myHTML.wxyz。
我应该是UIWebView的子类吗?还是有另一种方法可以做到这一点吗?
所有这些.wxyz文件都将包含在应用程序中,而不是服务器上。
答案 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;
}
}
}