iOS - 显示来自webview中的html资源文件或远程网页的内容

时间:2011-12-20 15:44:22

标签: ios uiwebview

我是iOS新手。我希望有一个函数从本地html资源文件或网页加载内容,具体取决于常量中指定的内容。我该怎么做呢?例如,如果我将文件:// ...传递给函数或http:// ...,它应该相应地呈现。

1 个答案:

答案 0 :(得分:35)

您可以轻松加载以下网页:

NSURLRequest *request = [NSURLRequest requestWithURL:
   [NSURL URLWithString:@"http://stackoverflow.com"]] ;

[webView loadRequest:request] ;

对于本地文件,它取决于设备上文件的位置: 对于主包(=您的项目)中的文件,您可以使用相同的 loadRequest 函数,但以不同方式构建路径:

NSString *localFilePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"] ;
NSURLRequest *localRequest = [NSURLRequest requestWithURL:
  [NSURL fileURLWithPath:localFilePath]] ;

[webView loadRequest:localRequest] ;

如果你想在你的webView中加载一个html字符串:

NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:bundlePath];

NSString *htmlString = [bundlePath pathForResource:@"index" ofType:@"html"] ;
[webView loadHTMLString:htmlString baseURL:baseURL];

如果您的html文件位于应用程序的文档文件夹中(例如您下载的html文件):

NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask ,YES );
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"index.html"];
NSURLRequest *documentsRequest = [NSURLRequest requestWithURL:
  [NSURL fileURLWithPath:path]] ;

[webView loadRequest:documentsRequest] ;