【发布时间】:2018-04-18 05:52:54
【问题描述】:
我正在为 iOS 开发一个 WKWebView-App,它增加了现有网站的功能,但我无法更改该网站的源代码。
当用户点击某些按钮时,它们会触发window.open。
我已经相应地成功覆盖了委托函数:
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
let contentController = WKUserContentController()
let popups = getJSfromURL(url: Bundle.main.path(forResource: "popups", ofType: "js")!)
contentController.addUserScript(popups)
let webConfiguration = WKWebViewConfiguration()
webConfiguration.userContentController = contentController
let popupView = WKWebView(frame: .zero, configuration: webConfiguration)
popupView.load(navigationAction.request)
view = popupView
return nil
}
在此弹出窗口中,有一个按钮调用this.close(),但浏览器抱怨说,它无法关闭,因为它不是由 javascript 打开的。
另一个按钮想要设置一些用户已经设置的参数,但浏览器抱怨,opener-参数是nil。
我可以在打开弹出窗口之前以某种方式使用注入的 javascript 来设置开启器吗?
【问题讨论】:
标签: ios swift xcode popup wkwebview