iOS
Obsługa schematów URL
Szukaj…
Składnia
// Metoda canOpenURL sprawdza, czy jest jakaś aplikacja, która może obsługiwać wskazany schemat adresów URL.
// Szybki
UIApplication.sharedApplication (). CanOpenURL (_ aUrl: NSURL)
// Cel C
[[UIApplication sharedApplication] canOpenURL: (NSURL *) aUrl];
// metoda openURL próbuje otworzyć zasób znajdujący się pod adresem URL. TAK / prawda, jeśli została otwarta inaczej NIE / fałsz.
// Szybki
UIApplication.sharedApplication (). OpenURL (_ aUrl: NSURL)
// Cel C
[[UIApplication sharedApplication] openURL: (NSURL *) aUrl];
Parametry
Parametr | Znaczenie |
---|---|
aurl | instancja NSURL, która przechowuje wbudowany lub niestandardowy ciąg schematu |
Uwagi
W iOS9 i nowszych twoja aplikacja musi wymieniać wszystkie schematy URL, które będzie chciał zapytać. Odbywa się to poprzez dodanie LSApplicationQueriesSchemes
do Info.plist
iOS ma wbudowane wsparcie dla schematów tel
, http
/ https
, sms
, mailto
, facetime
. Obsługuje również adresy URL oparte na http dla aplikacji Youtube
, Maps
i iTunes
.
Przykłady wbudowanych schematów URL:
tel : tel://123456890
lub tel:123456890
http : http://www.google.com
FaceTime: facetime://azimov@demo.com
mailto : mailto://azimov@demo.com
sms : sms://123456890
lub sms:123456890
Youtube : https://www.youtube.com/watch?v=-eCaif2QKfA
Mapy :
Za pomocą adresu:
http://maps.apple.com/?address=1,Infinite+Loop,Cupertino,California
Korzystanie ze współrzędnych:
http://maps.apple.com/?ll=46.683155557,6.683155557
iTunes : https://itunes.apple.com/us/artist/randy-newman/id200900
Uwaga : Nie wszystkie znaki specjalne są obsługiwane w schemacie tel
(na przykład *
lub #
). Odbywa się to ze względów bezpieczeństwa, aby uniemożliwić użytkownikom nieautoryzowane przekierowanie połączeń, więc w tym przypadku aplikacja Phone
nie zostanie otwarta.
Korzystanie z wbudowanego schematu URL do otwierania aplikacji Mail
Szybki:
if let url = URL(string: "mailto://azimov@demo.com") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else {
print("Cannot open URL")
}
}
Cel C:
NSURL *url = [NSURL URLWithString:@"mailto://azimov@demo.com"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
NSLog(@"Cannot open URL");
}
Schematy adresów URL Apple
Są to schematy URL obsługiwane przez natywne aplikacje na iOS, OS X i watchOS 2 i nowsze.
Link otwierający w Safari:
Cel C
NSString *stringURL = @"http://stackoverflow.com/";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Szybki:
let stringURL = "http://stackoverflow.com/"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
Rozpoczęcie rozmowy telefonicznej
Cel C
NSString *stringURL = @"tel:1-408-555-5555";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Szybki:
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>
Rozpoczynanie rozmowy FaceTime
Cel C
NSString *stringURL = @"facetime:14085551234";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Szybki:
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:user@example.com">Connect using FaceTime</a>
Otwieranie aplikacji Wiadomości, aby utworzyć SMS-a do odbiorcy:
Cel C
NSString *stringURL = @"sms:1-408-555-1212";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Szybki:
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>
Otwieranie aplikacji Mail w celu napisania wiadomości e-mail do odbiorcy:
Cel C
NSString *stringURL = @"mailto:foo@example.com";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Szybki:
let stringURL = "mailto:foo@example.com"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="mailto:frank@wwdcdemo.example.com">John Frank</a>
Możesz także dołączyć pole tematu, wiadomość i wielu odbiorców w polach Do, DW i UDW. (W systemie iOS atrybut From jest ignorowany.) Poniższy przykład pokazuje adres URL mailto, który zawiera kilka różnych atrybutów:
mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!
Uwaga: okno dialogowe Utwórz wiadomość e-mail można również wyświetlić w aplikacji za pomocą MFMailComposeViewController
.