Как мне использовать NSURL fileURLWithPath с фрагментом?

#iphone #ios #uiwebview #nsurl

#iPhone #iOS #uiwebview #nsurl

Вопрос:

У меня есть проект IOS с ресурсами html-файлов, отображаемыми в webview. Эти html-файлы имеют разные разделы, соответствующие фрагментам (например, index.html#section1, index.html#section2), которые я хотел бы загрузить в webview. К сожалению, использование [NSURL fileURLWithPath:url] не работает с фрагментами. # Преобразуется # в URL-адрес, и файл не найден. Если я использую [NSURL URLWithString:url] метод, он работает, но этот метод не может загружать локальные ресурсы.

Есть ли способ, чтобы webview загружал URL локального ресурса с фрагментом?

Комментарии:

1. iphoneincubator.com/blog/data-management/…

2. нет, это не сильно помогло. Кажется, это невозможно…

Ответ №1:

Как вы заметили, это кажется невозможным для URL-адресов файлов, но вы могли бы использовать обходной путь, если не возражаете:

 [webView stringByEvaluatingJavaScriptFromString:@"window.location.hash = '#section2';"];
  

Ответ №2:

Не очевидно, как Apple намеревалась запускать такого рода навигацию. Может быть несколько способов сделать это, но этот делает трюк для меня:

 NSURL *url = [NSURL fileURLWithPath:@"/full/path/to/index.html"];
NSString *fragment = @"#section1";
url = [NSURL URLWithString:fragment relativeToURL:url];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];