gpt4 book ai didi

ios - 从 .html 文件打印 HTML 在 UIWebView 中不起作用

转载 作者:行者123 更新时间:2023-11-29 13:30:51 25 4
gpt4 key购买 nike

在我将一些 html 硬编码到我的 UIWebView 函数后,我得到了“hello world”文本要打印,但现在我试图将该 HTML 移动到文件系统上其他地方的文件,但它没有呈现。

这是我的:

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

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

我的 HTML 文件位于我创建的名为 src/html_files 的目录中,该文件名为 learn.html

HTML 未在屏幕上呈现是我做错了什么?

谢谢!

最佳答案

好的,Groups 只是 Xcode 中的一个结构,用于保持应用程序资源的组织性。虽然 Xcode 使用小文件夹图标,但这并不一定意味着它们实际上是(Mac 或 iOS)文件系统上的独立文件夹。

但是,听起来您将该文件添加为捆绑资源。这也是您发布的代码的样子,但我不得不问,以确保。

最有可能的是,唯一的错误是:

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn" 
ofType:@"html"
inDirectory:@"src/html_files"];

应该是这样的:

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn" 
ofType:@"html"];

来自 the Apple documentation for NSBundle ,

+ (NSString *)pathForResource:(NSString *)name 
ofType:(NSString *)extension
inDirectory:(NSString *)bundlePath

bundlePath

The path of a top-level bundle directory. This must be a valid path. For example, to specify the bundle directory for a Mac app, you might specify the path /Applications/MyApp.app.

bundlePath 参数并不意味着指定包资源的相对路径。没有bundlePath 参数的pathForResource:ofType: 版本几乎总是您要使用的版本。安装您的应用程序后,它会在任何位置找到 learn.html 文件,并返回该文件的完整路径。你真的不必担心它是如何嵌套的。它只是一个捆绑资源。

试一试。不过,正如我在评论中所建议的那样,我始终建议利用 error 参数进行调试:

NSError* error;
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error: &error];
if (error != nil) {
NSLog(@"Error with stringWithContentsOfFile: %@", [error localizedDescription]);
}

关于ios - 从 .html 文件打印 HTML 在 UIWebView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11945162/

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