NSURL向fileURLWithPath方法添加参数

时间:2012-08-09 11:34:47

标签: iphone ios parameters append nsurl

我使用这行代码将本地html文件加载到Web视图中:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"html"]];

但是我想在网址上添加一些http参数到目前为止没有运气。

我试过这个:

url = [url URLByAppendingPathComponent:@"?param1=1"];

但在此之后,html无法在webview中加载。

有没有办法在paraview中加载webview中的本地html文件?

3 个答案:

答案 0 :(得分:13)

这样做:

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

答案 1 :(得分:6)

Prince 最受欢迎的答案并不总是有效。

在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;

答案 2 :(得分:1)

我这样使用:

NSURL *url=[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"xml"]];

如果您的文件包含在项目导航器的Resource文件夹中。否则,您必须在NSString中设置完整路径并在NSURL路径中使用该路径。