【问题标题】:best way to show images stored in the app from a webview in SWIFT从 SWIFT 中的 web 视图显示存储在应用程序中的图像的最佳方式
【发布时间】:2015-08-01 09:18:40
【问题描述】:

我有一个 webview 并想在 webview (html) 中显示图像

  • 我的 HTML:

    你好!img src="myimage.png" alt="myimage" height="42" width="42"!

(我用!作为tagend和tagstart,因为我不知道如何在这里添加而不被解释为HTML,即使我粘贴为代码)

  • myimage.png 应该存储在应用程序本身中,而不是从网络源加载。

我不知道如何以最佳实践方式做到这一点。有什么帮助吗?

更新 我尝试了引用的文章,但仍然没有成功: 我的代码:

        let path:NSString = NSBundle.mainBundle().bundlePath;
        var baseURL:NSURL=NSURL(fileURLWithPath: path as String)!;
        var htmlString:String! = texttemp
        myWebView.loadHTMLString(htmlString, baseURL: baseURL)

我已经可以加载相同的图像,如下所示 -> 作品:

var image = UIImage(named: "myimage.png");

【问题讨论】:

标签: image swift uiwebview bundle


【解决方案1】:

您更新的代码不正确。您正在创建捆绑包的路径,而不是特定文件的路径。您需要使用 NSBundle 方法 pathForResource:ofType(或其变体之一)来构建文件的路径。然后使用它来创建 URL。

如果找不到文件,pathForResource:ofType 系列方法将返回 nil,因此您应该检查是否返回了路径。

编辑:

仔细观察,我发现您使用 URL 作为调用 loadHTMLString 的基本 URL。这看起来确实是一种合理的方法。你的 HTML 字符串是什么,你的包中的图片在哪里?

【讨论】:

  • 我的图像在 Images.xcassets 文件/包中。单击它时,我可以在列表中看到它。正如我写的那样,我可以使用“UIImage(named”)访问这个文件。HTML 字符串是我写的,以“hello”开头。当粘贴带有 标记的字符串时,它没有显示在这个线程中,所以我有用 '!' 括住字符串
  • 现在它正在工作。我已经先尝试过了,但我一定犯了一个错误。我使用捆绑包之外的文件并按照您的描述进行操作。 (我的第一种方法没有捆绑)。非常感谢。
猜你喜欢
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多