WebView没有显示我的html文件

时间:2018-05-15 16:22:21

标签: ios uiwebview

我的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编写的。我错过了什么?

3 个答案:

答案 0 :(得分:2)

我按原样运行您的代码,并且在更改webView加载程序代码后能够使这些工作正常工作。这告诉我你可能有一个潜伏在某处的UIWebView,可能是你在故事板中的视图。

enter image description here

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

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

enter image description here

答案 1 :(得分:1)

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

但是Bundle.main.url(forResource: "BullsEye", withExtension: "html")可能会返回零吗? 如果是这样,您应该检查以下两件事:

  1. 要读取的文件是否包含在“复制包资源”

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

  2. 中注册

    enter image description here

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

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

    2. enter image description here

      希望这有帮助!

答案 2 :(得分:0)

以下代码可以帮助您。

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

请参阅 - swiftdeveloperblog

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