茶漬けの技術メモ

Golang, Rubyで趣味開発します。テックニュース書いたり。ガジェット触ったり。

【iOS】URLスキームを使ってメールアプリを起動

URLスキームを使うことで、メールやマップ、電話など色々なアプリを自分が開発しているアプリから呼び出すことができます。

今回はアプリ内から宛先、件名、本文を設定した状態で、メールアプリを呼び出すところまで実装していこうと思います。


URLスキームって何??

URLスキームとは、コンテンツの住所を表す手段のことで、例えば、写真アプリの時は「photos-redirect:」、メールアプリ(新規作成)の場合は「mailto:」となります。

さらに、「:」以降に決めらた形式で書くことで、アプリにデータを渡すこともできます。


URLスキームを使って、メールアプリを起動する

string = "mailto:"
let url = NSURL(string: string)
UIApplication.shared.openURL(url as! URL)

これで、メールアプリを新規作成の状態で開くことができます。

さらに、宛先、件名、本文を追加する例は以下になります。

string = "mailto:test@test.com?subject=test&body=testtesttest"
let url = NSURL(string: string)
UIApplication.shared.openURL(url as! URL)

: に続けて、宛先を追加し、?subject= の後に件名を&body= の後に本文を追加します。

ただ、日本語の場合はエンコードが必要なため以下のようになります。

string = "mailto:test@test.com?subject=テスト&body=テストテストテスト".addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed
let url = NSURL(string: string)
UIApplication.shared.openURL(url as! URL)