【问题标题】:UIWebView can only work with PNGs instead of JPGs?UIWebView 只能使用 PNG 而不是 JPG?
【发布时间】:2011-12-23 03:52:18
【问题描述】:

我在 UIWebView 中显示一个 html 页面,如下所示:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]
   pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];

html 包含对图像的引用:

<img src="ScreenshotTop.jpg" alt="Screenshot Top Part" />

我根本无法显示 JPG(即使按照其他一些问题/答案的建议设置 baseURL)。但是,当我将图形的格式更改为 PNG 并像这样引用该文件时:

<img src="ScreenshotTop.png" alt="Screenshot Top Part" />

一切正常。这是否意味着 UIWebView 可以正确显示 PNG,但不能与 JPG 一起使用?还是有其他事情发生?

(FWIW,我使用的是 XCode 4.1 和 iOS 模拟器 4.3.2。)

【问题讨论】:

    标签: ios uiwebview png jpeg


    【解决方案1】:

    不要认为这与 PNGJPG 图像有关。使用相对路径或file: 路径来引用图像不适用于 UIWebView。相反,您必须使用正确的 baseURL 将 HTML 加载到视图中:

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

    然后您可以像这样引用您的图像:

    <img src="myimage.png">
    

    或者像这样在 CSS 中:

    background-image: url(loading.gif)
    

    请务必注意,应用程序包中的图像位于包的根目录中,即使您将它们放在项目中的图像目录中也是如此。

    查看here了解更多信息。

    【讨论】:

    • 我也是这么想的。我刚刚重新检查了我的代码,除了调用 requestWithURL: 之外我什么也没做。如果引用了 .jpg,它不起作用,如果引用了 .png,它会起作用。我还是很困惑....
    • 你能不能做一个干净的构建并再次测试这个场景。也许是一些旧的缓存文件引起了一些混乱?
    • 没有变化。我什至删除了模拟器中的应用程序并重新运行.. 仍然是相同(奇怪)的行为。
    猜你喜欢
    • 2011-12-20
    • 2013-03-21
    • 2012-08-19
    • 1970-01-01
    • 2012-10-08
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多