12

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

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

但是,我想在 url 中添加一些 http 参数,但到目前为止还没有运气。

我试过这个:

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

但在此之后,一个 html 不会在 webview 中加载。

有没有办法在 webview 中使用 params 加载本地 html 文件?

4

3 回答 3

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];
于 2012-08-09T11:43:58.250 回答
6

普林斯最赞成的答案并不总是有效。

在 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;
于 2015-06-09T01:48:02.950 回答
1

我这样使用:

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

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

于 2012-08-09T11:45:22.710 回答