NSURL добавляет параметры в метод fileURLWithPath
Я использую эту строку кода для загрузки локального html файла в веб-представление:
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"html"]];
Однако я хочу добавить некоторые URL-параметры в URL-адрес без везения.
Я пробовал это:
url = [url URLByAppendingPathComponent:@"?param1=1"];
Но после этого html не загружается в webview.
Есть ли способ загрузить локальный html файл в webview с параметрами?
Ответы
Ответ 1
Сделайте это:
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"html"]];
NSString *URLString = [url absoluteString];
NSString *queryString = @"?param1=1";
NSString *URLwithQueryString = [URLString stringByAppendingString: queryString];
NSURL *finalURL = [NSURL URLWithString:URLwithQueryString];
NSURLRequest *request = [NSURLRequest requestWithURL:finalURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:(NSTimeInterval)10.0 ];
[web loadRequest:request];
Ответ 2
Самый поддерживаемый ответ Принц не всегда работает.
В iOS 7 Apple представила класс NSURLComponents
, мы можем использовать это для безопасного добавления запроса в NSURL
.
NSURL *contentURL = ...;
NSURLComponents *components = [[NSURLComponents alloc] initWithURL:contentURL resolvingAgainstBaseURL:NO];
NSMutableArray *queryItems = [components.queryItems mutableCopy];
if (!queryItems) queryItems = [[NSMutableArray alloc] init];
[queryItems addObject:[NSURLQueryItem queryItemWithName:@"access_token" value:@"token_here"]];
components.queryItems = queryItems;
NSURL *newURL = components.URL;
Ответ 3
Я использую так:
NSURL *url=[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"xml"]];
Если ваш файл включен в папку "Ресурсы" навигатора проекта. в противном случае вы должны установить полный путь в NSString
и использовать его в своем пути NSURL
.