我的应用程序中有一个UIWebView,我正尝试使用loadHTMLString(_:, baseURL:)加载应用程序中String中存储的HTML。 Web视图始终显示为无内容的纯灰色矩形。如果将HTML字符串保存到文件中并在Mac上的Safari中加载,则页面将按预期呈现。

我以为这可能是关于HTML的东西,所以我将其简化为可以得到相同结果的最小测试:

let myHTMLString = "<html><head></head><body><p>This is a test</p></body></html>"
myWebView.loadHTMLString(myHTMLString, baseURL: nil)

仍然是一个灰色矩形。

我在这里浏览了其他答案,以检查和验证各种可能相关的详细信息:
  • 允许任意加载无效。并不是说它应该与我上面的测试用例有所不同,但是有些人对此有疑问。
  • 我已经使用Safari远程调试UIWebView。所有内容都在那里,只是在iOS应用程序中不可见。
  • 从Safari调试时显示的大小与使用Xcode的视图调试器时看到的大小匹配。可以看到网络视图,Safari会显示它的大小正确。
  • 我已经实现了UIWebView委托方法并设置了proxy属性。我收到对webViewDidStartLoad(_:)webViewDidFinishLoad(_:)webView(_:shouldStartLoadWith:navigationType:)的调用,在最后一种情况下,我总是返回true。没有错误的报告-我从来没有得到webView(_:didFailLoadWithError:)
  • 如果更改UIWebView的背景颜色,则会得到不同的矩形颜色,但是仍然看不到任何可见的页面内容。

  • 我错过了什么?这应该是个小问题,但我看不到任何内容。

    最佳答案

    您收到的错误很奇怪,但是您是否已经尝试为baseURL参数设置值?类似于:URL(string: "www.google.com")

    关于ios - 加载HTML字符串时,UIWebView保持空白,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43874567/

    10-16 18:02