gpt4 book ai didi

html - 将本地 css 文件加载到 webview 中

转载 作者:行者123 更新时间:2023-12-01 18:12:07 26 4
gpt4 key购买 nike

我构建了一个简单的 ios 应用程序,它将从服务器下载的 html 加载到 webview 中。

[self.webView loadHTMLString:notif.html baseURL:nil];

这很完美。问题是我需要将本地 css 文件应用于 webview,但我不知道该怎么做。

我试过这样做,但没有应用样式。
NSString *HTML_HEADER=@"<HTML><HEAD><link rel='stylesheet' href='style.css' type='text/css'></HEAD><BODY>";
NSString *HTML_FOOTER=@"</BODY></HTML>";
NSString *htmlString = [NSString stringWithFormat:@"%@%@%@",HTML_HEADER,notif.html,HTML_FOOTER];

NSLog(@"htmlString %@", htmlString);
[self.webView loadHTMLString:htmlString baseURL:nil];

任何的想法?

谢谢

更新:

我尝试执行以下操作:
NSString *HTML_HEADER=@"<HTML><HEAD><link rel='stylesheet' href='#FILE1#' type='text/css'></HEAD><BODY>";
NSString *HTML_FOOTER=@"</BODY></HTML>";

NSString *cssFilePath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"];
NSString *html_header_with_files = [HTML_HEADER stringByReplacingOccurrencesOfString:@"#FILE1#" withString:cssFilePath];


NSString *htmlString = [NSString stringWithFormat:@"%@%@%@",html_header_with_files,notif.html,HTML_FOOTER];

NSLog(@"htmlString %@", htmlString);
[self.webView loadHTMLString:htmlString baseURL:nil];

在构建阶段我添加了 style.css

enter image description here

更新 2:

我还检查 style.css 是否存在
 NSString* filePath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"];
NSLog(@"\n\nthe string %@",filePath);

最佳答案

原因是 CSS 和 JS 文件在运行时无法在 HTML 中呈现。

您需要注意以下几点:

  • 所有 CSS/JS/HTML 文件必须添加到 元素属性 >> 构建阶段 >> 复制捆绑资源。

  • 检查是否添加了所有文件,如果没有,则手动添加这些文件。

    enter image description here
  • 所有文件都应该放在同一个文件夹中,以便引用文件路径在运行时可用。
  • 而不是直接使用文件名,我更喜欢你使用标记。使用符号作为标记,替换为 CSS 和 JS 文件的实际路径。

  • 例如:
    NSString *HTML_HEADER=@"<HTML><HEAD><link rel='stylesheet' href='#FILE1#' type='text/css'></HEAD><BODY>";
    NSString *HTML_FOOTER=@"</BODY></HTML>";

    NSString *cssFilePath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"];
    NSString *html_header_with_files = [HTML_HEADER stringByReplacingOccurrencesOfString:@"#FILE1#" withString:cssFilePath];


    NSString *htmlString = [NSString stringWithFormat:@"%@%@%@",html_header_with_files,notif.html,HTML_FOOTER];

    NSLog(@"htmlString %@", htmlString);
    [self.webView loadHTMLString:htmlString baseURL:nil];

    在上面的示例中,我已替换 style.css来自 html 部分的字符串并添加标记 #FILE1# .

    此标记是文件的相对 URL style.css它将在 webView 中加载 html 之前被替换。

    因此,每当您想将 html 加载到 webView 时,请从其亲属 url 加载所有资源文件。

    这里 HTML_HEADER将替换为所有资源文件的实际路径。

    关于html - 将本地 css 文件加载到 webview 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28762007/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com