1

我创建了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的整个编码

4

3 回答 3

2

这很奇怪,我有类似的代码,html 被呈现为富文本而不是纯文本(就像你一样),我唯一的区别是使用fileURLWithPath:但不是fileURLWithPath:isDirectory:. 这是我的代码:

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

也许您对文件编码有一些问题,但据我猜测,情况并非如此。

于 2013-02-28T06:52:44.213 回答
2

在您的代码中,您始终包含 HTML 代码,因为您的请求始终返回htmlfile带有扩展的文件.html

如果您想从内容中获取特定价值,HTML需要使用. 这也是 用于解析内容的示例文档。 HTMLHppleHTML

在您的情况下,您使用:(通过使用Hpple)

TFHpple *dataParser = [TFHpple hppleWithHTMLData:placesData];

    // name of place
NSString *XpathQueryString = @"//p/strong";
NSArray *listOfdata= [dataParser searchWithXPathQuery: XpathQueryString];
于 2013-02-28T06:45:55.863 回答
0

试试这个代码:

- (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];
}
于 2013-02-28T07:03:11.433 回答