我正在尝试使用 Swift 在 iOS 13 上加载带有 WKWebView 的网页。它在 iOS 12 中运行良好。问题是 WKWebView 在 iOS 13 上显示白屏。两者(iOS 12/iOS 13)使用相同的 URL,所以我 100% 确定 URL 中没有问题。这是我加载网页的 UIViewController:
import UIKit
import WebKit
class WebViewController: UIViewController , WKNavigationDelegate{
var param : String!
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://google.com")!
webView.load(URLRequest(url: url))
}
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
view = webView
}
}
Safari 检查员结果:
about:blank
www.google.com
最佳答案
确保在发出请求之前始终拥有有效 URL 的一种方法是使用“if”而不是强制解包。
override func viewDidLoad() {
super.viewDidLoad()
if let url = URL(string: MyData.url){
webView.load(URLRequest(url: url))
}
}
如果你不进去,你也可以在那里添加一个 else 语句或者使用提前返回来打印一些东西。
除了这样做以检查 url 是否有效之外,您还可以调试并检查 webview 以查看是否是
nil
.如果是这种情况,那么您的解决方案是将您的代码添加到 viewWillAppear
而不是 viewDidLoad
.
关于ios - WKWebView 未在 iOS 13 上加载网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58186766/