swift - WKWebView 是否需要 URL?
问题描述
我正在通过加载 JSON 的 API 提取 HTML 内容,并希望使用 WKWebView 来显示它。是否可以在没有 URL 的情况下使用 WKWebView?
这个控制器是以编程方式构建的,所以 webView 被添加为 Subview。从长远来看,我会将 webView 显示在其他从 API 中提取的内容下方。
这是我的代码:
var webView = WKWebView()
webView = WKWebView(frame: scrollView.bounds, configuration: WKWebViewConfiguration())
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
scrollView.addSubview(webView)
webView.navigationDelegate = self as? WKNavigationDelegate
webView.loadHTMLString("<html><body>\(self.articleBody)</body></html>", baseURL: nil)
加载我的应用程序时出现此错误:
Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service
在使用随机 URL 而没有 HTML 的测试中,它工作得很好。
我看过这个问题,但它没有对我有意义的答案:com.apple.WebKit.WebContent drop 113 error: Could not find specified service
解决方案
我仍然遇到同样的错误,但我至少现在看到了我的内容......
这个问题与我调用 webView.loadHTMLString 的位置有关。我不得不将它移到我的 URLSession 代码中,而不是把它放在外面。
URLSession.shared.dataTask(with: url) { (data, response, err) in
guard let data = data else { return }
if err == nil {
do {
let decoder = JSONDecoder()
let devo = try decoder.decode(Devotion.self, from: data)
DispatchQueue.main.async {
self.articleBody = devo.body
self.webView.loadHTMLString("<html><body>\(self.articleBody)</body></html>", baseURL: nil)
}
} catch let err {
print("Err", err)
}
}
}.resume()
推荐阅读
- c# - 通过在 windows server 2008r2 上的 IIS 中部署的应用程序使用 VSTS 命令在 tfs2018 中创建项目时出错
- javascript - 是否有用于 javascript 的 firebase admin sdk?
- dictionary - 如何在 siddhi 中使用地图扩展
- swift - 子视图不低于其他视图 Swift
- python - 在我的终端(mosquitto)上显示来自 mqtt 服务器的 json 消息
- php - 使用条件限制 foreach 循环
- pdf - 如何:Markdown PDF 将表格向左对齐
- python-3.5 - 使用 python 从 PC 麦克风获取音频输入
- c# - 斯坦福 NLP - 识别各自的意图
- java - Android 使用带有 HTTPS 的 Ksoap2 请求