2012-08-30 6 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; 

     } 
    } 
}