Я использую следующий код для открытия URL с SFSafariViewController
:
import UIKit
import SafariServices
class ViewController: UIViewController, UITextViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
openBrowser(url: "https://www.example.com")
}
fileprivate func openBrowser(url: String) {
let svc = SFSafariViewController(url: NSURL(string: url)! as URL, entersReaderIfAvailable: false)
svc.delegate = self
present(svc, animated: true, completion: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
extension ViewController: SFSafariViewControllerDelegate {
func safariViewController(_ controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool) {
}
func safariViewController(_ controller: SFSafariViewController, activityItemsFor URL: URL, title: String?) -> [UIActivity] {
return []
}
func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
}
}
Это работает очень хорошо.
Но если на сайте есть ссылка с target="_blank"
и я нажимаю на это, ничего не происходит.
Я знаю, что SFSafariViewController
не поддерживает несколько окон или вкладок.
Но я думаю, что должна быть возможность игнорировать target="_blank"
и откройте ссылку, как будто нет target="_blank"
.
Есть ли способ достичь этого?