iOS
Обработка URL-адресов
Поиск…
Синтаксис
// Метод canOpenURL проверяет, есть ли какое-либо приложение, которое может обрабатывать указанную схему URL.
// Swift
UApplication.sharedApplication (). CanOpenURL (_ aUrl: NSURL)
// Объектив-C
[[UAppication sharedApplication] canOpenURL: (NSURL *) aUrl];
// метод openURL пытается открыть ресурс, расположенный по URL-адресу. YES / true, если он был открыт иначе NO / false.
// Swift
UIApplication.sharedApplication (). OpenURL (_ aUrl: NSURL)
// Объектив-C
[[UAppication sharedApplication] openURL: (NSURL *) aUrl];
параметры
параметр | Имея в виду |
---|---|
aUrl | экземпляр NSURL, в котором хранится встроенная или настраиваемая строка схемы |
замечания
В iOS9 и выше ваше приложение должно указать любые схемы URL, которые он хочет запросить. Это делается путем добавления LSApplicationQueriesSchemes
к Info.plist
iOS имеет встроенную поддержку схем tel
, http
/ https
, sms
, mailto
, facetime
. Он также поддерживает HTTP-адреса для приложений Youtube
, Maps
и iTunes
.
Примеры встроенных схем URL:
тел : tel://123456890
или tel:123456890
http : http://www.google.com
facetime : facetime://[email protected]
mailto : mailto://[email protected]
смс : sms://123456890
или sms:123456890
Youtube : https://www.youtube.com/watch?v=-eCaif2QKfA
Карты :
Использование адреса:
http://maps.apple.com/?address=1,Infinite+Loop,Cupertino,California
Использование координат:
http://maps.apple.com/?ll=46.683155557,6.683155557
iTunes : https://itunes.apple.com/us/artist/randy-newman/id200900
Примечание . Не все специальные символы поддерживаются в tel
схеме (например, *
или #
). Это делается из-за проблем с безопасностью, чтобы запретить пользователям несанкционированную переадресацию вызовов, поэтому в этом случае приложение « Phone
не будет открыто.
Использование встроенной схемы URL для открытия приложения «Почта»
Swift:
if let url = URL(string: "mailto://[email protected]") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else {
print("Cannot open URL")
}
}
Objective-C:
NSURL *url = [NSURL URLWithString:@"mailto://[email protected]"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
NSLog(@"Cannot open URL");
}
Схемы URL-адресов Apple
Это схемы URL, поддерживаемые родными приложениями в iOS, OS X и watchOS 2 и более поздних версиях.
Открытие ссылки в Safari:
Objective-C
NSString *stringURL = @"http://stackoverflow.com/";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
let stringURL = "http://stackoverflow.com/"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
Запуск телефонного разговора
Objective-C
NSString *stringURL = @"tel:1-408-555-5555";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
let stringURL = "tel:1-408-555-5555"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="tel:1-408-555-5555">1-408-555-5555</a>
Запуск сеанса FaceTime
Objective-C
NSString *stringURL = @"facetime:14085551234";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
let stringURL = "facetime:14085551234"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="facetime:14085551234">Connect using FaceTime</a>
<a href="facetime:[email protected]">Connect using FaceTime</a>
Открытие сообщений Приложение для составления смс получателю:
Objective-C
NSString *stringURL = @"sms:1-408-555-1212";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
let stringURL = "sms:1-408-555-1212"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="sms:">Launch Messages App</a>
<a href="sms:1-408-555-1212">New SMS Message</a>
Открытие приложения Mail для составления письма получателю:
Objective-C
NSString *stringURL = @"mailto:[email protected]";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
let stringURL = "mailto:[email protected]"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="mailto:[email protected]">John Frank</a>
Вы также можете указать поле темы, сообщение и несколько получателей в полях To, Cc и Bcc. (В iOS атрибут from игнорируется.) В следующем примере показан URL-адрес mailto, который включает в себя несколько разных атрибутов:
mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!
Примечание. Диалоговое окно создания электронной почты также может быть представлено в приложении с помощью MFMailComposeViewController
.