2012-08-30 217 views
0

如何讓UIWebView加載一個文件,該文件實際上是一個HTML文件,但其擴展名已更改爲.wxyz?但是,有一組文件包含文件之間的超鏈接。文檔中的超鏈接指向帶有.html擴展名的文件。文件擴展名更改

所以,我需要發生的是讓UIWebView識別.wxyz == .html並打開文件,當點擊這樣的鏈接時,<a href="myHTML.html">A Link</a>將打開文件myHTML.wxyz。

我應該繼承UIWebView嗎?還是有另一種方法來做到這一點?

所有這些.wxyz文件將包含在應用程序中,而不是在服務器上。

回答

0

我認爲你可以用UIWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:來做到這一點 - 只要檢測到html也有相應的wxyz資源的請求,返回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; 

     } 
    } 
}