Cocoa WebView - 加载本地HTML页面

Tej*_*udi 7 cocoa webview

浏览了一下之后,我仍然无法弄清楚这一点.我已将HTML页面及其images目录添加到Xcode中的项目资源组中(复制它们).

当我尝试使用以下代码加载WebView时,文本显示正常,但未加载图像.

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"index.html"];
NSString *htmlContent = [NSString stringWithContentsOfFile:path];
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
[[tempWebView mainFrame] loadHTMLString:htmlContent baseURL:url];
Run Code Online (Sandbox Code Playgroud)

编辑:抱歉延迟,这里有一些失败的基本HTML.

<html>
    <body> 
        <img src="images/bg.png"></img> 
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我编辑的代码看起来像这样 -

NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
[[webView1 mainFrame] loadRequest:[NSURLRequest requestWithURL:url]];
Run Code Online (Sandbox Code Playgroud)

编辑2:刚刚意识到这是路径的问题.显然<img src = "images/bg.png">不起作用,但如果我将bg.png复制到根目录并说<img src = "bg.png">一切正常.我仍然不确定我在哪里出错了.

Pet*_*sey 8

考虑执行以下操作:

  1. 不要自己获取资源路径并将子路径装订到其上,而是要求捆绑包为您提供正确的路径.
  2. 而不是处理路径,请求捆绑包为您提供正确的URL.(需要Mac OS X 10.6或更高版本.)
  3. 不要将HTML内容直接注入到框架中,而是要求WebView加载URL.

这会将您的代码减少到两行,如果HTML代码正确,则可以使用.