Vin*_* TP 2 webview ios swift wkwebview
我正在WKWebView中加载一个URL。
let url = URL(string: "myURL")
let request = URLRequest(url: url!)
webView1.navigationDelegate = self as! WKNavigationDelegate
webView1.load(request)
Run Code Online (Sandbox Code Playgroud)
但是,委托函数
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("Finished navigating to url \(webView.url)")
}
Run Code Online (Sandbox Code Playgroud)
完成加载后不会触发。
然后我将KVO用于Web视图
webView1.addObserver(self, forKeyPath: "loading", options: .new, context: nil)
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if (keyPath == "loading") {
guard var web1 = object as? WKWebView else { return }
}
}
Run Code Online (Sandbox Code Playgroud)
加载正常。但是,observer加载后是否有任何可用的webview
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
Run Code Online (Sandbox Code Playgroud)
如果设置navigationDelegate正确,必须调用。
你做完了吗?
class ViewController: UIViewController, WKNavigationDelegate {
}
Run Code Online (Sandbox Code Playgroud)
如果您设置以上内容WKNavigationDelegate,您的代码将如下所示,
let url = URL(string: "http://www.google.com")
let request = URLRequest(url: url!)
webView.navigationDelegate = self
webView.load(request)
Run Code Online (Sandbox Code Playgroud)
和委托方法,
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("Finished navigating to url \(String(describing: webView.url))")
}
Run Code Online (Sandbox Code Playgroud)
希望对您有所帮助,如有任何疑问,请告知我。
仅供参考。无需设置外部观察者。
更新
使App Transport Security你info.plist这样的吗?
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4391 次 |
| 最近记录: |