Swift uiDelegate方法创建未调用配置的webview
我已经将委托分配给wkwebview uiDelegate,并实现了它的方法createWebView with configuration,但没有调用它。我甚至放置了断点,但它并没有命中Swift uiDelegate方法创建未调用配置的webview,swift,wkwebview,wkuidelegate,Swift,Wkwebview,Wkuidelegate,我已经将委托分配给wkwebview uiDelegate,并实现了它的方法createWebView with configuration,但没有调用它。我甚至放置了断点,但它并没有命中 class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate { @IBOutlet weak var webView: WKWebView! override func viewDidLoad() { su
class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView.navigationDelegate = self
webView.uiDelegate = self
let requestURL = URL(string: "https://www.google.com")!
let request = URLRequest(url: requestURL)
webView.load(request as URLRequest)
}
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
let config = WKWebViewConfiguration()
return WKWebView(frame: webView.frame, configuration: config)
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
}
}
它似乎没有在webview的初始初始化时调用委托。。。我建议您仅从代码创建webview
let configuration = WKWebViewConfiguration()
configuration.allowsInlineMediaPlayback = true
configuration.allowsAirPlayForMediaPlayback = true
configuration.mediaTypesRequiringUserActionForPlayback = []
webView = WKWebView(frame: containerView.frame, configuration: configuration)
webView.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(webView)
NSLayoutConstraint.activate([
webView.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
webView.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
webView.topAnchor.constraint(equalTo: containerView.topAnchor),
webView.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
])
containerview只是我的xib中的一个基本UIView集,所以只需在您的xib中设置此UIView而不是wkwebview,您就可以开始了我也遇到了同样的问题,您找到解决方案了吗?我也遇到了这种情况。。。