サーチ…
構文
// canOpenURLメソッドは、指定されたURLスキームを処理できるアプリケーションがあるかどうかを確認します。
// Swift
UIApplication.sharedApplication()。canOpenURL(_ aUrl:NSURL)
// Objective-C
[[UIApplication sharedApplication] canOpenURL:(NSURL *)aUrl];
// openURLメソッドは、URLにあるリソースを開こうとします。 YES /開いていればtrue、そうでない場合はNO / false。
// Swift
UIApplication.sharedApplication()。openURL(_ aUrl:NSURL)
// Objective-C
[[UIApplication sharedApplication] openURL:(NSURL *)aUrl];
パラメーター
パラメータ | 意味 |
---|---|
aUrl | 組み込みまたはカスタムスキーム文字列を格納するNSURLインスタンス |
備考
iOS9以降では、アプリはクエリを行うURLスキームを列挙しなければなりません。これは、 LSApplicationQueriesSchemes
をInfo.plistに追加することによって行われます。
iOSにはtel
、 http
/ https
、 sms
、 mailto
、 facetime
スキームの組み込みサポートがありhttps
。また、 Youtube
ベースのURL、 Maps
、 iTunes
アプリのhttpベースのURLもサポートしています。
ビルトインURLスキームの例:
tel : tel://123456890
or tel:123456890
http : http : http://www.google.com
FaceTime社 : facetime://[email protected]
mailto : mailto://[email protected]
SMS : sms://123456890
またはsms:123456890
YouTube : https://www.youtube.com/watch?v=-eCaif2QKfA
: https://www.youtube.com/watch?v=-eCaif2QKfA
マップ :
アドレスの使用:
http://maps.apple.com/?address=1,Infinite+Loop,Cupertino,California
:http://maps.apple.com/?address=1,Infinite+Loop,Cupertino,California
address=1,http://maps.apple.com/?address=1,Infinite+Loop,Cupertino,California
座標の使用:
http://maps.apple.com/?ll=46.683155557,6.683155557
:http://maps.apple.com/?ll=46.683155557,6.683155557
iTunes : https://itunes.apple.com/us/artist/randy-newman/id200900
: https://itunes.apple.com/us/artist/randy-newman/id200900
注 :すべての特殊文字がtel
スキームでサポートされているわけではありません(たとえば、 *
または#
)。これは、ユーザーが不正なリダイレクトをしないようにするセキュリティ上の問題があるために行われます。この場合、 Phone
アプリは開かれません。
組み込みのURLスキームを使用してMailアプリを開く
迅速:
if let url = URL(string: "mailto://[email protected]") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else {
print("Cannot open URL")
}
}
目標-C:
NSURL *url = [NSURL URLWithString:@"mailto://[email protected]"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
NSLog(@"Cannot open URL");
}
AppleのURLスキーム
これらは、iOS、OS X、およびwatchOS 2以降のネイティブアプリでサポートされているURLスキームです。
Safariでリンクを開く:
目標-C
NSString *stringURL = @"http://stackoverflow.com/";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
迅速:
let stringURL = "http://stackoverflow.com/"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
電話会話を開始する
目標-C
NSString *stringURL = @"tel:1-408-555-5555";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
迅速:
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の会話を開始する
目標-C
NSString *stringURL = @"facetime:14085551234";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
迅速:
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>
メッセージを開く受信者にSMSを作成するアプリケーション:
目標-C
NSString *stringURL = @"sms:1-408-555-1212";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
迅速:
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アプリを開いて受信者へのメールを作成する:
目標-C
NSString *stringURL = @"mailto:[email protected]";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
迅速:
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属性は無視されます)次の例は、いくつかの異なる属性を含むmailto URLを示しています。
mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!
注:メールの作成ダイアログは、 MFMailComposeViewController
を使用してアプリ内で提示することもできます。