Внутренний URL с идентификатором фрагмента - PullRequest
4 голосов
/ 29 апреля 2011

У меня есть большой .htm файл в основном комплекте, который я хочу загрузить в веб-просмотр.Нет проблем, пока я не добавлю идентификатор фрагмента в конец URL.Я хочу, чтобы веб-просмотр открывался с идентификатором привязки #c при нажатии кнопки.

Кстати: если я создаю URL http://www.mydomain.com/database.htm#c и загружаю его из Интернета.Все хорошо.

Я попробовал несколько подходов.Оба провалились.Я предполагаю, что серверная часть выполняет разбор URL в интернете, но iPhone не имеет такой возможности.У кого-нибудь есть предложение?Пожалуйста, будьте явными с примерами, если это возможно.Я нуб и сам по себе.

В тупике

 NSString *path         = [[NSBundle mainBundle] pathForResource:@"database1.htm" ofType:nil];
 NSString *pathWithFrag = [NSString stringWithFormat:@"%@%@%",path, @"#c"];
 NSURL *baseURL         = [ NSURL fileURLWithPath:pathWithFrag];
 [spinner2 loadRequest:[NSURLRequest requestWithURL:baseURL]];
 [super viewDidLoad];   

ИЛИ

 NSString *path  = [[NSBundle mainBundle] pathForResource:@"database1.htm" ofType:nil];
 NSURL *baseURL  = [ NSURL fileURLWithPath:path];
 NSURL *newURL   = [baseURL URLByAppendingPathComponent:@"#c"];
 [spinner2 loadRequest:[NSURLRequest requestWithURL:newURL]];
 [super viewDidLoad];

Ответы [ 2 ]

3 голосов
/ 01 мая 2011

Похоже, что это может быть проблема с NSURL-экранированием символа "#": http://9mmedia.com/blog/?p=299

Следуя методу, описанному в этом сообщении в блоге, что-то вроде этого может работать:

NSString *path = [[NSBundle mainBundle] pathForResource:@"database1.htm" ofType:nil];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSURL *fullURL = [NSURL URLWithString:@"#c" relativeToURL:baseURL];
[spinner2 loadRequest:[NSURLRequest requestWithURL:fullURL]];
[super viewDidLoad];
0 голосов
/ 29 апреля 2011

Дополнительные % в формате pathWithFrag могут вызывать проблемы: попробуйте @"%@%@", а не @"%@%@%"

...