webview - WKWebView 在 Safari 中打开选项卡而不是在 WebView 中
问题描述
我有一个小问题。我为我的网站制作了一个 webview 应用程序。一切正常,而不是加载带有 target="_blank" 的链接。他们在 Safari 中重新加载。我希望将它们加载到 webview 中。有谁知道该怎么做?
这是我的代码
//
// ViewController.swift
// Street Grinders
//
// Created by Jörg Quick on 20.11.18.
// Copyright © 2018 FH Darmstadt. All rights reserved.
//
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate {
@IBOutlet weak var WebView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.WebView.uiDelegate = self
//Lade Webseite https://www.street-grinders.de
let url = URL(string: "https://www.street-grinders.de")
let request = URLRequest(url: url!)
//Lade Webview
WebView.load(request)
//Gestensteuerung aktivieren
WebView.allowsBackForwardNavigationGestures = true
//Lade die Seite neu wenn Push Down
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(reloadWebView(_:)), for: .valueChanged)
WebView.scrollView.addSubview(refreshControl)
}
//Öffnet Safari, wenn neuer Tab beansprucht wird!
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
if navigationAction.targetFrame == nil {
UIApplication.shared.open(navigationAction.request.url!, options: [:])
}
return nil
}
//Gibt Speicherwarnung
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
//Funktion zum Seite neu laden!
@objc func reloadWebView(_ sender: UIRefreshControl) {
WebView.reload()
sender.endRefreshing()
}
}
如果有人可以发布代码而不是 func webView,那就太好了。
解决方案
推荐阅读
- r - 如果缺少当月日期的信息,则格式化为 posixct
- python - TypeError:'int'对象不可迭代,但不存在迭代?
- c# - Winforms:导出字符串和列表
同时转为 CSV - javascript - 使用 SVG 作为背景图片 styled-components
- node.js - knex.js - 动态模式名称迁移失败
- java - 在两个模块中包含相同的 jar 会引发构建错误
- swift - 如何修复调用中参数“完成”的缺失参数(MapBox 场景工具包)
- c - OpenSSL 更新到较新版本:已弃用的 `OPENSSL_config` 的替代方案
- javascript - 如何读取 Github 存储库中的 .yaml 文件并将内容发布到 Github 页面
- java - 修改列表 - 流方法