为什么 window.close 不适用于多个 windows
Why window.close is not working for multiple windows
我用过Handling new window inside webview。我使用了上述 link 中的解决方案 2,它正在将新的 window 添加到 子视图 。
此 link 中提供的解决方案效果很好。但是我在这里遇到的问题是,当我在 webview
中打开多个 windows 时,我无法关闭打开它的父 window。 window的开启和关闭由写在远程服务器上的简单代码控制,简单的由window.open("some_valid_url")
和window.close()
组成,分别开启和关闭window。
我给 webview 比方说 www.someValidUrl.com,它有打开 window 和关闭 window 的代码。
例如:
主页 --> 然后主页打开 window A--> 然后 window A 打开 window B,现在如果我关闭 window B 然后尝试关闭 windowA,windowA不会关闭
因此我无法 return 到主页。
我正在添加用于 open 和 close[= 的代码39=]windows分别为:
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
}
}
...
}
我分享了用于 windows 打开和关闭的唯一代码。我想允许在我的应用程序中打开和关闭多个 windows。任何帮助将不胜感激。
请询问您是否需要有关该问题的更多详细信息。
经过一些搜索和反复试验后,我找到了自己问题的答案,通过如下更改 webViewDidClose
中的代码:
func webViewDidClose(_ webView: WKWebView) {
webView.removeFromSuperview()
popupWebView = nil
}
希望这对面临同样问题的其他人有所帮助。
我用过Handling new window inside webview。我使用了上述 link 中的解决方案 2,它正在将新的 window 添加到 子视图 。
此 link 中提供的解决方案效果很好。但是我在这里遇到的问题是,当我在 webview
中打开多个 windows 时,我无法关闭打开它的父 window。 window的开启和关闭由写在远程服务器上的简单代码控制,简单的由window.open("some_valid_url")
和window.close()
组成,分别开启和关闭window。
我给 webview 比方说 www.someValidUrl.com,它有打开 window 和关闭 window 的代码。
例如: 主页 --> 然后主页打开 window A--> 然后 window A 打开 window B,现在如果我关闭 window B 然后尝试关闭 windowA,windowA不会关闭
因此我无法 return 到主页。
我正在添加用于 open 和 close[= 的代码39=]windows分别为:
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
}
}
...
}
我分享了用于 windows 打开和关闭的唯一代码。我想允许在我的应用程序中打开和关闭多个 windows。任何帮助将不胜感激。
请询问您是否需要有关该问题的更多详细信息。
经过一些搜索和反复试验后,我找到了自己问题的答案,通过如下更改 webViewDidClose
中的代码:
func webViewDidClose(_ webView: WKWebView) {
webView.removeFromSuperview()
popupWebView = nil
}
希望这对面临同样问题的其他人有所帮助。