На странице настроек я хочу включить три ссылки на
- Мой сайт поддержки приложений
- Руководство по приложению YouTube
- Мой основной сайт (т. Е. Связанный с ярлыком «Создано Дейлом Дитрихом».)
Я искал этот сайт и в Интернете, и мою документацию, и я не нашел ничего очевидного.
ПРИМЕЧАНИЕ. Я не хочу открывать веб-страницы в своем приложении. Я просто хочу отправить ссылку на Safari, и эта ссылка будет открыта там. Я видел несколько приложений, делающих одно и то же на своей странице настроек, поэтому это должно быть возможно.
ios
url
mobile-safari
Дейл Дитрих
источник
источник
Ответы:
Вот что я сделал:
Я создал IBAction в заголовочных файлах .h следующим образом:
Я добавил UIButton на странице настроек, содержащей текст, на который я хочу сослаться.
Я подключил кнопку к IBAction в File Owner соответственно.
Затем выполните следующее:
Objective-C
стриж
(IBAction в viewController, а не в заголовочном файле)
источник
Быстрый Синтаксис:
Новый синтаксис Swift для iOS 9.3 и более ранних версий
Начиная с какой-то новой версии Swift (возможно, swift 2?), UIApplication.sharedApplication () теперь является UIApplication.shared (я полагаю, лучше использовать вычисляемые свойства). Кроме того, URL больше не является неявно конвертируемым в NSURL, должен быть явно конвертирован как!
Новый синтаксис Swift с iOS 10.0
Метод openURL устарел и заменен более универсальным методом, который принимает объект опций и асинхронный обработчик завершения начиная с iOS 10.0
источник
openURL(_:)
устарел в iOS 10.0, вместо этого вы должны вызывать метод экземпляраopen(_:options:completionHandler:)
в UIApplication.if let url = NSURL(string:"http://www.reddit.com/") { UIApplication.shared.open(url) }
всегда будет служить вам лучше. Может быть,assert
и ошибка вelse
заявлении, чтобы поймать опечатки.Здесь требуется одна проверка, чтобы открываемый URL мог открываться устройством или симулятором или нет. Потому что иногда (большинство в симуляторе) я обнаружил, что это вызывает сбои.
Objective-C
Swift 2.0
Swift 4.2
источник
canOpenURL
. Я не понимаю, почему бы вам просто не позвонить,openURL:url
и если это не удастся, справиться с неудачей.canOpenURL
в основном используется для обнаружения установки приложения, не выходя из текущего приложения.openURL(_:)
устарел в iOS 10.0, вместо этого вы должны вызывать метод экземпляраopen(_:options:completionHandler:)
в UIApplication.Взгляните на
-openURL:
метод UIApplication. Это должно позволить вам передать экземпляр NSURL в систему, которая определит, в каком приложении его открыть и запустить это приложение. (Имейте в виду, что вы, вероятно, захотите-canOpenURL:
сначала проверить , на случай, если URL-адрес не может быть обработан приложениями, установленными в настоящее время в системе - хотя это, вероятно, не проблема для простыхhttp://
ссылок.)источник
openURL(_:)
устарел в iOS 10.0, вместо этого вы должны вызывать метод экземпляраopen(_:options:completionHandler:)
в UIApplication.И, если вы не уверены, что указанный URL
text
имеет схему:источник
text
здесь) не будет жестко запрограммирована, и вам нужен такой код.Не осуждаемая версия Objective C будет:
источник
Swift 3.0
Это поддерживает устройства под управлением более старых версий iOS
источник
Свифт 3 Решение с кнопкой Готово
Не забудь
import SafariServices
источник
Поскольку этот ответ устарел с iOS 10.0, лучшим ответом будет:
y en Objective-c
источник
openURL ( :) устарел в iOS 10.0, вместо этого вы должны использовать следующий метод экземпляра в UIApplication: open ( : options: завершениеHandler :)
Пример использования Swift
Это откроет « https://apple.com » в Safari.
https://developer.apple.com/reference/uikit/uiapplication/1648685-open
источник
В SWIFT 3.0
источник
Свифт 5:
Использование:
Ссылка:
OpenURL в iOS10
источник
Попробуй это:
источник
В Swift 1.2 , попробуйте это:
источник
Решение Swift 4:
источник