Открыть конкретную ссылку в Safari из UIWebView

у меня естьUIWebView который загружает локальный файл index.html.

Однако в этом html-файле есть внешняя ссылка, которую я хотел бы открыть в Safari, а не внутриUIWebView.

Открытие ссылки в сафари от скажемUIButton было достаточно просто:

UIApplication.sharedApplication().openURL(NSURL(string: "http://www.stackoverflow.com"))

Открытие приложения Instagram по внешней ссылке также работает как шарм.

<a href="instagram://media?id=434784289393782000_15903882">instagram://media?id=434784289393782000_15903882</a>

Итак, сначала я должен был сделать что-то вроде этого:

<a href="safari://stackoverflow.com">Open in Safari</a>

Однако, кажется, что это не работает, тогда я прочитал кое-что об использованииwebView:shouldStartLoadWithRequest:navigationType:

Но каждый, кому удалось открыть внешнюю ссылку в Safari, пишет в Obj-C, с которым я не слишком знаком, поскольку пишу в Swift.

Обновление с кодом Swift:

import UIKit

class AccessoriesViewController: UIViewController, UIWebViewDelegate {


    @IBOutlet weak var webView:UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()


        if let url = NSBundle.mainBundle().URLForResource("accessories", withExtension: "html") {
            webView.loadRequest(NSURLRequest(URL: url))
        }



    }
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return UIStatusBarStyle.LightContent;
    }

    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        if let url = request.URL where navigationType == UIWebViewNavigationType.LinkClicked {
            UIApplication.sharedApplication().openURL(url)
            return false
        }
        return true
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

Ответы на вопрос(1)

Ваш ответ на вопрос