ios - 无法从 UIWebView 获取要在 HTML 中呈现的 css 文件样式

标签 ios ios5 uiwebview

如果我创建内联样式,它们会呈现,但当尝试在 xCode 中引用同一组和目录中的 css 文件时,它们不会呈现。

这是我的做法:

<html>
<head>
    <link href="main.css" rel="stylesheet" type="text/css" /> 
</head>

<body>

    <h1>Hello, world! Learn</h1>

    <p>
    <a href="myscheme://advertising" class="buttonStyle">Click me!</a>
    </p> 
</body>
</html>

然后我有一个名为 main.css 的 css 文件,如下所示:

body {background-color:#b0c4de;}
p {background-color:#e0ffff;}

有人知道为什么这不会呈现 css 吗?我是否遗漏了 HTML header 中的重要内容?

这是我首先调用 HTML 的方式:

- (void)viewDidAppear:(BOOL)animated
{  
    NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn" 
                                                         ofType:@"html"];

    NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
    [theWebView loadHTMLString:htmlString baseURL:nil];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:htmlFile]];

    [theWebView loadRequest:request];
}

最佳答案

问题出在

[theWebView loadHTMLString:htmlString baseURL:nil];

由于 baseURL 为 nil,Web View 无法确定您的 css 文件的位置。与其手动创建数据并加载它,不如将 HTML 文件的路径直接传递给 UIWebView:

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:htmlFile];
NSURLRequest *rq = [NSURLRequest requestWithURL:url];
[webView loadRequest:rq];

关于ios - 无法从 UIWebView 获取要在 HTML 中呈现的 css 文件样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954661/

相关文章:

javascript - 如何确定网站是在 iPhone/Android 浏览器上打开还是从 iPhone/Android 应用程序网页 View 打开?

ios - UIWebView 文本到默认正文样式

ios - 移除 NSNotificationCenter 观察者

javascript - iOS 5 Safari 中导航后退/卸载事件未触发时出现页面缓存问题

ios - 如何关闭 PushViewController?

ios - 弹出窗口中的 uiBarButtonItem 框架最佳选择

jquery - 如何使这个 jquery 在 iOS 5.1 的 UIWebView 中工作?

objective-c - 如何创建包含 2 个嵌入的空值以及登录名和密码字符串的登录名 "string"?

ios - 如何在 iOS WatchKit 中实现一个表

ios - 如何加载带有注释信息的 View Controller