为什么window.close不适用于多个窗口

Jen*_*nav 5 javascript swift wkwebview wkwebviewconfiguration

我已经在webview中使用处理新窗口。我使用了上述链接中的解决方案2,该链接将新窗口添加到subview中

此链接中提供的此解决方案效果很好。但是我在这里面临的问题是,当我打开多个窗口时,webview无法关闭打开它的父窗口。窗口的打开和关闭由在远程服务器上编写的简单代码控制,分别由window.open("some_valid_url")window.close()分别组成和打开和关闭窗口。

我给webview假设是www.someValidUrl.com,它具有打开窗口和关闭窗口的代码。

例如:主页->然后,主页打开窗口A->然后,窗口A打开窗口B,现在,如果我关闭窗口B,然后尝试关闭窗口A,则窗口A将不会关闭。

结果,我无法返回主页。

我添加了分别用于打开关闭窗口的代码:

class ViewController: UIViewController, UIWebViewDelegate, CLLocationManagerDelegate,WKUIDelegate,WKNavigationDelegate
{
    @IBOutlet weak var webView: WKWebView!
    var popupWebView: WKWebView?
    ...
    func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
            popupWebView = WKWebView(frame: view.bounds, configuration: configuration)
            popupWebView!.autoresizingMask = [.flexibleWidth, .flexibleHeight]
            popupWebView!.navigationDelegate = self
            popupWebView!.uiDelegate = self
            view.addSubview(popupWebView!)
            return popupWebView!
        }
    func webViewDidClose(_ webView: WKWebView) {
        if webView == popupWebView {
            popupWebView?.removeFromSuperview()
            popupWebView = nil
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我已经共享了用于Windows打开和关闭的唯一代码。我想允许在我的应用程序中打开和关闭多个窗口。任何帮助将不胜感激。

请询问您是否需要有关该问题的更多详细信息。