0

我正在尝试将本地 html 内容加载到 uiwebview 中。我已经准备好了 html 内容,我正在通过如下代码所示的机制向内容添加一个在线 css 文件的引用。但是,我面临的问题是当我加载 webview 时,没有样式。此外,我在 Charles Proxy 中进行了验证,没有将 iphone.css 文件提取到我的基本服务器的传出调用。理想情况下,在加载 html 页面时,uiwebview 应该获取所有引用的资源,但由于某种我不知道的原因,它没有获取 css 文件。

请查看并让我知道我的代码是否存在我无法在此处识别的问题?

NSString* htmlString = @"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"he\" lang=\"he\"><head><link type=\"text/css\" href=\"http://<base_server>/resources/iphone.css\" /><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /></head><body>%@</body></html>";


        UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
        NSLog(@"%@",[NSString stringWithFormat:htmlString,entry.body]);
        [webview loadHTMLString:[NSString stringWithFormat:htmlString,entry.body] baseURL:[NSURL URLWithString:@"http://<base_server>/"]];

        [self addSubview:webview];
4

1 回答 1

2

很难判断 HTML 中是否有任何拼写错误,所有双引号都在该字符串中转义。为什么不将 HTML 从字符串中拉出并放入文件中,读取该文件并将内容放入正文中。该字符串中的标记可能有错误。这将允许您在单独的文件中更轻松地阅读它。

就像是:

NSError *error;
NSStringEncoding encoding;
NSString *htmlFilePath = [[NSBundle mainBundle] pathForResource: @"Sample" 
                                                         ofType: @"html"];
NSString *htmlString = [NSString stringWithContentsOfFile:htmlFilePath 
                                             usedEncoding:&encoding 
                                                    error:&error];

NSString *html = [NSString stringWithFormat:htmlString, entry.body];

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

[webview loadHTMLString:html baseURL:baseURL];
于 2013-03-11T13:10:27.323 回答