カスタムURLスキームを利用する (2)
iOSにおけるカスタムURLスキームについて調べた事をまとめた連載記事の第2回目です。
今回はURLスキームを利用したアプリ起動について書きたいと思います。
例によって間違いなどありましたらご指摘くださいませ。
“Apple URL Scheme Reference” によると、アップルが公開しているURLスキームはこんな感じ。
- “Mail Links” describes the format for sending email with the Mail application.
- “Phone Links” describes the format for dialing phone numbers in the Phone application.
- “Text Links” describes the format for launching the Text application.
- “Map Links” describes the format for specifying locations in the Maps application.
- “YouTube Links” describes the format for linking to YouTube videos.
- “iTunes Links” describes the format for linking to items in the iTunes Music Store.
それぞれ、メール, 電話, SMS/MMS, マップ, YouTube, iTunesアプリに対応します。このうち、メール, 電話, SMS/MMS は組み込みURLスキーム(アプリではなくiOSの?)となっており、mailto, tel, sms のURLスキームを持ちます。マップ, YouTube, iTunesアプリのURLスキームはhttpを使用します(それぞれの利用方法は先のドキュメントに書いてあります)。
iOSではURLスキームを用いたアプリの起動方法は2種類あります。
ひとつはHTMLリンクとして記述し、ユーザーがリンクを踏むことにより起動する方法。もうひとつは UIApplicationクラスの openURL: メソッドから起動する方法です。どちらも指定されたURLを開く動作であり、やっていることは同じです。記述方法が異なるだけです。
Apple URL Scheme Reference には各アプリの起動方法とアプリに渡すオプションの指定方法が書かれています。HTMLリンクの記述方法と、iOSネイティブアプリで openURL:メソッドの引数となるURL文字列の指定方法です。
以下にメールアプリを例に具体的な実装方法を示します。
リンクを踏む、あるいはコードを実行するとメールアプリが起動し、 [email protected] 宛の新規メッセージ編集状態になります。
HTMLリンクとして記述する方法
<a href="mailto:[email protected]">John Frank</a>
iOSネイティブアプリのコードから指定する方法
// UIApplicationオブジェクトの openURL: メソッドでURLスキーム文字列を含むNSURLオブジェクトを指定します
NSURL *myURL = [NSURL URLWithString: @"mailto:[email protected]"];
[[UIApplication sharedApplication] openURL:myURL];
メールアプリを起動するだけなら “mailto:” とするだけです。
次回は自作アプリにカスタムURLを組み込む方法を解説したいと思います。
続き>> カスタムURLスキームを利用する (3)
参考URL
- Apple URL Scheme Reference: http://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/
- iOS Application Programming Guide: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/
Implementing Standard Application Behaviors>Communicating with Other Applicationsのあたり。