iOS
Hantera URL-scheman
Sök…
Syntax
// canOpenURL- metoden verifierar om det finns någon app som kan hantera angivet URL-schema.
// Snabb
UIApplication.sharedApplication (). CanOpenURL (_ aUrl: NSURL)
// Mål-C
[[UIApplication sharedApplication] canOpenURL: (NSURL *) aUrl];
// openURL- metoden försöker öppna en resurs som ligger via URL. JA / sant om det öppnades annars INGEN / falskt.
// Snabb
UIApplication.sharedApplication (). OpenURL (_ aUrl: NSURL)
// Mål-C
[[UIApplication sharedApplication] openURL: (NSURL *) aUrl];
parametrar
Parameter | Menande |
---|---|
AURL | en NSURL-instans som lagrar en inbyggd eller anpassad schematsträng |
Anmärkningar
I iOS9 och högre måste din app lista alla URL-scheman den vill fråga. Detta görs genom att lägga till LSApplicationQueriesSchemes
till Info.plist
iOS har inbyggt stöd för tel
, http
/ https
, sms
, mailto
, facetime
scheman. Det stöder också http-baserade webbadresser för Youtube
, Maps
och iTunes
appar.
Exempel på inbyggda URL-scheman:
tel : tel://123456890
eller tel:123456890
http : http://www.google.com
facetime : facetime://[email protected]
mailto : mailto://[email protected]
sms : sms://123456890
eller sms:123456890
Youtube : https://www.youtube.com/watch?v=-eCaif2QKfA
Kartor :
Använda adress:
http://maps.apple.com/?address=1,Infinite+Loop,Cupertino,California
Använda koordinater:
http://maps.apple.com/?ll=46.683155557,6.683155557
iTunes : https://itunes.apple.com/us/artist/randy-newman/id200900
Obs : Inte alla specialtecken stöds i tel
schema (till exempel *
eller #
). Detta sker på grund av säkerhetsproblem för att hindra användare från obehörig redirect samtal, så i detta fall Phone
app inte öppnas.
Använda inbyggt URL-schema för att öppna Mail-appen
Snabb:
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");
}
Apple URL-scheman
Dessa är URL-scheman som stöds av ursprungliga appar på iOS, OS X och watchOS 2 och senare.
Öppningslänk i Safari:
Objective-C
NSString *stringURL = @"http://stackoverflow.com/";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Snabb:
let stringURL = "http://stackoverflow.com/"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
Starta ett telefonsamtal
Objective-C
NSString *stringURL = @"tel:1-408-555-5555";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Snabb:
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>
Starta en FaceTime-konversation
Objective-C
NSString *stringURL = @"facetime:14085551234";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Snabb:
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>
Öppna meddelanden App för att komponera ett sms till mottagaren:
Objective-C
NSString *stringURL = @"sms:1-408-555-1212";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Snabb:
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>
Öppna Mail-appen för att skriva ett e-postmeddelande till mottagaren:
Objective-C
NSString *stringURL = @"mailto:[email protected]";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Snabb:
let stringURL = "mailto:[email protected]"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
html
<a href="mailto:[email protected]">John Frank</a>
Du kan också inkludera ett ämnesfält, ett meddelande och flera mottagare i fälten To, Cc och Bcc. (I iOS ignoreras från-attributet.) Följande exempel visar en mailto-URL som innehåller flera olika attribut:
mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!
Obs: Skriv e-postdialogrutan kan också presenteras i appen med hjälp av MFMailComposeViewController
.