Swift WKWebView:Google OAuth弹出视图

Swift WKWebView:Google OAuth弹出视图,swift,macos,oauth,popup,wkwebview,Swift,Macos,Oauth,Popup,Wkwebview,我有一个WKWebView,其中有一个服务/网站正在使用Google OAuth访问Google Drive。由于正常的网站打开一个弹出窗口,关闭它,并提示服务网站上的文件选择器,我需要处理该弹出功能 因此,我已经集成了以下内容,以便在单独的WKWebView上打开GoogleOAuth func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigatio

我有一个WKWebView,其中有一个服务/网站正在使用Google OAuth访问Google Drive。由于正常的网站打开一个弹出窗口,关闭它,并提示服务网站上的文件选择器,我需要处理该弹出功能

因此,我已经集成了以下内容,以便在单独的WKWebView上打开GoogleOAuth

func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
    if navigationAction.targetFrame == nil {
        let url = navigationAction.request.url
        if url?.description.lowercased().range(of: "https://accounts.google.com") != nil  {
            self.popupWebView.load(URLRequest(url: url!))
            return self.popupWebView
        }
    }
    return nil
}
这正如预期的那样工作——但是空/白的WebView应该自动关闭——但是它没有。为了自动关闭,我添加了这个委托方法

func webViewDidClose(_ webView: WKWebView) {
    webView.removeFromSuperview()
    print("--- Close webview")
}
问题1:但此方法不会被调用-可能是因为Google源代码关闭弹出窗口的方式没有被此委托方法捕获?当我在real Browser选项卡中打开确切的OAuth URL时,它也会保持打开状态,但服务网站中的弹出窗口会自动关闭。但这只是关于结束。。。这不是主要问题

问题2:但我真的很想知道如何将OAuth弹出窗口中的“postmessage”发送到应该显示文件选择器的主WebView。如何从popupView捕获postmessage并将其传输到主WebView

这就是我坚持了几个小时的观点