WKWebView 是不是需要 URL?
Posted
技术标签:
【中文标题】WKWebView 是不是需要 URL?【英文标题】:Does WKWebView require a URL?WKWebView 是否需要 URL? 【发布时间】:2018-08-08 14:46:00 【问题描述】:我正在通过加载 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 drops 113 error: Could not find specified service
【问题讨论】:
只是备注 - 您现在已经自己解决了问题:示例代码的第一行var webView = WKWebView()
创建了一个 WKWebView
实例,该实例在第二行被立即覆盖。
感谢@ReinhardMänner。
【参考方案1】:
我仍然遇到同样的错误,但我至少现在可以看到我的内容...
问题与我调用 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()
【讨论】:
以上是关于WKWebView 是不是需要 URL?的主要内容,如果未能解决你的问题,请参考以下文章
iOS 13 beta 中 WKWebView 的内在内容大小问题
检查 URL 是不是与 UIWebView 的请求或 WKWebView 的 navigationAction.request 相等