#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];