Примечание. У меня нет опыта работы с xamarin, но я знаю, как «window.open ()» js работает в WKWebView с собственным кодом, поэтому я надеюсь, что этот ответ поможет вам соединить недостающие точки.
Сначалаустановите UIDelegate, где вы настраиваете свое веб-представление .. (в вашем случае - viewDidLoad)
webView.uiDelegate = self
Во-вторых, реализуйте этот метод протокола UIDelegate.Идея состоит в том, чтобы создать веб-представление «на лету» и контроллер представления «на лету» и представить / отправить его, а затем вернуть этот экземпляр веб-представления в WebKit, чтобы он мог установить связь с родительским веб-представлением и загрузить URL-адрес (первый параметр окна.открытый звонок).
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
let childWebView = WKWebView(frame: .zero, configuration: configuration) // Must use the configuration provided by this method
let webViewController = ViewController() // create an instance of a new view controller that you want to push or present with a web view
webViewController.webView = childWebView // provide this new child web view to view controller for layout purpose
navigationController?.pushViewController(webViewController, animated: true)
return childWebView
}