В настоящее время я открываю ссылку в своем приложении в WebView
, но я ищу вариант, чтобы открыть ссылку в Safari .
150
Это не «запекается в Swift», но вы можете использовать стандартные UIKit
методы, чтобы сделать это. Взгляните на UIApplication (устарело) и .openUrl(_:)
open(_:options:completionHandler:)
Swift 4 + Swift 5 (iOS 10 и выше)
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.open(url)
Swift 3 (iOS 9 и ниже)
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.openURL(url)
Swift 2.2
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.sharedApplication().openURL(url)
Новый с iOS 9 и выше, вы можете предоставить пользователю
SFSafariViewController
(см. Документацию здесь ). По сути, вы получаете все преимущества отправки пользователя в Safari, не заставляя его покидать ваше приложение. Чтобы использовать новый SFSafariViewController просто:и где-то в обработчике событий представляет пользователю контроллер представления Safari, например:
Представление сафари будет выглядеть примерно так:
источник
sharedApplication
свойству в расширении приложения запрещен. Для получения дополнительной информации: developer.apple.com/library/archive/documentation/General/…ОБНОВЛЕНО для Swift 4: (кредит Марко Веберу)
ИЛИ используйте более быстрый стиль, используя
guard
:Свифт 3:
Вы можете проверить NSURL как необязательный неявным образом:
источник
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") { UIApplication.shared.openURL(requestUrl as URL) }
Свифт 3 и IOS 10.2
источник
начиная с iOS 10 вы должны использовать:
источник
Swift 5
Swift 5: проверьте,
canOpneURL
если действует, то он открыт.источник
В Swift 1.2:
источник
В Swift 2.0:
источник
IOS 11.2 Swift 3.1- 4
источник