gpt4 book ai didi

ios - 在新窗口或选项卡中打开的链接未在 native iOS 中加载

转载 作者:搜寻专家 更新时间:2023-11-01 06:01:12 26 4
gpt4 key购买 nike

我的应用程序中有一个 WKWebView,单击它时 WKWebView 中有一些按钮,但未加载新页面。从外观上看,他们正试图打开一个 about_blank 页面。在浏览器中,链接在新页面中打开并加载 URL。

最佳答案

执行此操作的方法是实现 WKUIDelegate 并覆盖此方法

func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView?

如果您使用传递的配置返回一个新的 WKWebView,请求将被加载到一个新的 webview。由于 target=_blank 尝试在浏览器中打开一个新窗口,因此此方法弥补了 iOS 中的不足。您可以使用这个新的 WKWebView 启动一个新的 UIViewController,其中请求 target=_blank 页面。

这是一个简单的例子,我用新的 webView 替换主 WKWebView,并在同一个 viewcontroller 中加载请求,

extension ViewController: WKNavigationDelegate, WKUIDelegate {

public func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
let newWebView = WKWebView(frame: self.webView.frame,
configuration: configuration)
view.addSubview(newWebView)
return newWebView
}
}

这在某种程度上类似于浏览器中的选项卡。但是,请记住,随着上述更改,向前和向后不起作用,因为您已经创建了一个新的 webview。如果你想让一切正常,我建议你用这个 webview 加载一个新的 viewcontroller 或者创建一个新的 View 来加载和显示它,你可以切换到其他主 webview。

关于ios - 在新窗口或选项卡中打开的链接未在 native iOS 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49902667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com