如何解决如何在 safari 中使用 target="blank" 打开 url (WKWebView, webkit)
我正在开发一个应用程序,它基本上是一个 Web 视图,显示一个旨在模仿应用程序的网站。大多数 URL 将是内部 URL,但也会有一些 URL 将重定向到其他站点。所有这些链接都会有 target="_blank"。
我花了几天时间浏览这个网站和其他网站,以找到一个可以在 safari 中打开 _blank URL 的解决方案,但是我尝试过的一切都失败了。
对此的任何帮助将不胜感激。我在视图控制器的代码下面添加了
import UIKit
import WebKit
class ViewController: UIViewController,WKUIDelegate,WKNavigationDelegate {
@IBOutlet weak var webView:WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView.uiDelegate = self
let myURL = URL(string:"https://example.com")
let myRequest = URLRequest(url: myURL!)
webView?.load(myRequest)
}}
func webView(_ webView: WKWebView,createWebViewWith configuration: WKWebViewConfiguration,for navigationAction: WKNavigationAction,windowFeatures: WKWindowFeatures) -> WKWebView? {
if let frame = navigationAction.targetFrame,frame.isMainFrame {
return nil
}
webView.load(navigationAction.request)
return nil
}
解决方法
用这个替换你的 createWebViewWith
extension ViewController: WKUIDelegate {
//This opens maps or any other url given in new tab
func webView(_ webView: WKWebView,createWebViewWith configuration: WKWebViewConfiguration,for navigationAction: WKNavigationAction,windowFeatures: WKWindowFeatures) -> WKWebView? {
if navigationAction.targetFrame == nil {
webView.load(navigationAction.request)
}
return nil
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。