使用 UIWebView 显示 html 文件
Posted
技术标签:
【中文标题】使用 UIWebView 显示 html 文件【英文标题】:Showing html file using UIWebView 【发布时间】:2013-02-28 06:34:53 【问题描述】:我创建了一个UIWebView
并使用了一个html 文件来显示一些内容。但是当我运行它而不是显示内容时,只有整个 HTML 文件编码出现在 WebView 中。请帮助并告诉我出了什么问题。
UIWebView *ingradients= [[UIWebView alloc]init];
[ingradients setFrame:CGRectMake(10, 170, 300, 300)];
[ingradients loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"htmlfile" ofType:@"html"]isDirectory:NO]]];
ingradients.delegate=self;
[self.view addSubview:ingradients];
我的 htmlfile.html 包含
<html>
<body>
<p><strong>Ingredients</strong></p>
</body>
</html>
不是以粗体显示“成分”,而是显示htmlfile.html
的整个编码【问题讨论】:
【参考方案1】:在您的代码中,您始终包含 HTML 代码,因为您的请求始终返回文件 htmlfile
,扩展名为 .html
如果您想从HTML
内容中获得特定价值,您需要使用Hpple
Parce HTML
内容。这也是 documentation with exmple 用于解析 HTML
内容。
在您的情况下,您使用:(通过使用Hpple
)
TFHpple *dataParser = [TFHpple hppleWithHTMLData:placesData];
// name of place
NSString *XpathQueryString = @"//p/strong";
NSArray *listOfdata= [dataParser searchWithXPathQuery: XpathQueryString];
【讨论】:
刚才我注意到,当我在浏览器中打开该 html 文件时,它也会显示整个编码。你能告诉我会是什么问题吗? 我实际上尝试了 loadHTMLstring 方法并将 html 编码作为字符串参数放在那里,并且工作正常.... :)【参考方案2】:这很奇怪,我有类似的代码,html 被呈现为富文本而不是纯文本(就像你一样),我唯一的区别是使用 fileURLWithPath:
而不是 fileURLWithPath:isDirectory:
。这是我的代码:
NSString *localFilePath = [[NSBundle mainBundle] pathForResource:@"about" ofType:@"html"];
NSURLRequest *localRequest = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:localFilePath]];
[_aboutWebView loadRequest:localRequest];
也许你对文件编码有一些问题,但据我猜测,情况不应该如此。
【讨论】:
刚才我注意到,当我在浏览器中打开该 html 文件时,它也会显示整个编码。你能告诉我会是什么问题吗?【参考方案3】:试试这个代码:
- (NSString *) rootPath
return [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) lastObject];
- (NSString *) pathFoResourse : (NSString *) resourseName ofType: (NSString *)type
NSString *path = [[MMSupport rootPath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", resourseName, type]];
if (![[NSFileManager defaultManager] fileExistsAtPath:path])
path = [[NSBundle mainBundle] pathForResource:resourseName ofType:type];
NSLog(@"**path:%@**", path);
return path;
- (void) loadDataToWebView : (CGRect) frame
NSString *htmlString = [NSstring stringWithContentsOfFile:[MMSupport pathFoResourse:@"filename" ofType:@"html"] encoding:NSUTF8StringEncoding) error:nil];
UIWebView *webView = [[UIWebView alloc] initWithFrame:frame];
[webView loadHTMLString:htmlString baseURL:nil];
【讨论】:
以上是关于使用 UIWebView 显示 html 文件的主要内容,如果未能解决你的问题,请参考以下文章
使 UIWebView 成为 UITableviewCell 的一部分