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

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

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


person Marius    schedule 11.10.2011    source источник
comment
iphoneincubator.com/blog/ управление данными/   -  person Marios    schedule 11.10.2011
comment
нет, это мало помогло. Кажется, это невозможно...   -  person Marius    schedule 13.10.2011


Ответы (2)


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

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

Непонятно, как 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];
person thomax    schedule 12.05.2013