WebView 没有显示我的 html 文件

WebView not showing my html file

我的 ViewController 中有一个 webView。我在我的项目中创建了一个 BullsEye.html 文件,我想在我的 Web 视图中显示该 html 文件。以下是我的代码

if let url = Bundle.main.url(forResource: "BullsEye",
                                 withExtension: "html") {
      if let htmlData = try? Data(contentsOf: url) {
        let baseURL = URL(fileURLWithPath: Bundle.main.bundlePath)
        webView.load(htmlData, mimeType: "text/html",
                     textEncodingName: "UTF-8", baseURL: baseURL)
      }
    }

以上代码是在viewDidLoad中写的。我错过了什么?

下面的代码可以帮到你。

   func loadHtmlFile() {
        if let fileurl = Bundle.main.url(forResource: "BullsEye", withExtension: "html") {  
            let request = URLRequest(url: fileurl!)
            webView.loadRequest(request)
    }
}

参见 - swiftdeveloperblog

此外,如果代码似乎不适合您,请确保在任何浏览器中打开 html 文件并检查它是否是有效的 html 文件。

我 运行 你的代码是原样的,并且能够在更改 webView 加载程序代码后使事情像这里看到的那样工作。这告诉我你可能有一个 UIWebView 潜伏在某个地方,可能是你在故事板中的视图。

我建议您确保始终使用 WKWebView:

  • 在您的 class 文件中导入 WebKit
  • 如果您使用故事板
  • ,请为其提供有效输出link
  • 如果使用故事板,请确保您使用的是 WKWebView 而不是已弃用的 UIWebView

我认为你的源代码本身没有问题。

但也许 Bundle.main.url(forResource: "BullsEye", withExtension: "html") return 没有? 如果是这样,您应该检查以下两件事:

  1. Copy Bundle Resources中是否包含要读取的文件

    要包含在项目中的文件已在 TARGETS> Build Phases> Copy Bundle Resources 中注册。

  1. 项目目录下是否存在要读取的文件

    在 Finder 中打开项目目录并检查您尝试加载的文件是否实际存在。

希望对您有所帮助!