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.