スタッフブログ

STAFF BLOG

アプリ開発日誌

2016.08.25

URLスキームとは。実装時の注意点も含めご紹介します

こんにちは、エンジニアの松川です。
アプリ制作でたまに要望のあるURLスキーム。
今回はそのURLスキームについてまとめてみようと思います。

そもそもURLスキームって何?

一般的に知られるURLと同様に、アドレスの事。
ちなみにスキームというのは、URLの先頭についている箇所を指します。
代表的なものが、「http」「ftp」「mailto」「file」とか。

呼び出す時は下記みたいな感じ

  • http://
  • ftp://
  • mailto://

URLスキームを使って何ができるか?

URLスキームを使うと、現在表示しているアプリケーションから別のアプリケーションにタスクを切り替える事ができます。
その際に値を渡す事ができるので、切り替え先のアプリケーション側で受け取った値を元に様々な挙動を実装する事が可能です。
よく見るのが食べログとかでお店を調べてる時に地図を確認すると、「GoogleMapアプリで開きますか?」って出てくるあれですね。

※スキームの後ろにつける引数は、投げる側と受け取り側で取り決めをしておく必要があります。mailtoであればbodyというキーにはメールの本文が入る、など

例:mailto://[email protected]?body=お問い合わせ内容を入力してください

URLスキーム実装時の注意

今回はiOSでの実装を想定します。

URLスキームを使用するにはあらかじめアプリ側でスキームを設定しておく必要があります。
大抵はバンドルIDをスキームにするのが無難ですかね。
というのもスキームはユニークな文字列では無いので、他のアプリで使用しているスキームとぶつかる可能性があります
例えば端末内に同じスキームのアプリが2つ以上あった場合、意図していないアプリが起動されてしまったりするんですよね。

また1つのアプリに複数のスキームを指定する事もできます。
近頃スキームを複数指定できる仕組みを利用した悪質なアプリも出回ったりしているので、そういったものに巻き込まれないためにも並べく短い単語などをスキームにするのは避けたほうが賢明です。

最後に

URLスキームを使用する際にWebViewとアプリの連携が必須な場合は良いですが、気をつけてほしいのがアプリ内WebViewのリンクから自身のスキームを呼んで何かイベントを起こす場合です。

アプリ内WebViewのリンクを元にイベントを起こしたい時はフックと呼ばれる方法で解決できます。
※特定のリンク先に遷移させずにアプリでイベントを起こす事

たまに何でもかんでもURLスキームで画面遷移させれば良いじゃん、とかURLスキームを指定すればどの画面でも遷移できると思っている人がいます。
※アプリ側でURLスキームを受け取って遷移するには、あらかじめ処理を実装しておく必要がある事を認識していなかったり

またURLスキームと似たような意味合いとして使われる「ディープリンク」という言葉もあり一概にURLスキームといっても広義です。
使用する際はお互いの認識があっているのか、またURLスキームである必要があるのかを確認して適切に使用しましょう!

BACK

お問合せ

イーディーエーに興味をお持ちいただいて
ありがとうございます!
スマホアプリに関するご相談、
お見積りや弊社へのご質問など、
お気軽にお問い合わせください。
担当者より折り返しご連絡させていただきます。

    お名前必須
    会社名
    メールアドレス必須
    電話番号必須
    お問合わせ種別必須
    お問合わせ内容必須

    アンケートにご協力ください。
    弊社サイトへはどのようにしてアクセスされましたか?

    個人情報のお取扱いに関する同意事項

    1.事業者の氏名又は名称

    株式会社イーディーエー

    2.個人情報保護管理者の氏名又は職名、所属及び連絡先

    個人情報保護管理者 小宮 保人
    Mail:[email protected]

    3.取得した個人情報の利用目的

    当フォームで取得した個人情報は、お問い合わせに関する回答のために利用し、目的外利用はいたしません。

    4.弊社が取得した個人情報の第三者への委託、提供について

    弊社は、ご本人に関する情報をご本人の同意なしに第三者に委託または提供することはありません。

    5.個人情報保護のための安全管理

    弊社は、ご本人の個人情報を保護するための規程類を定め、従業者全員に周知・徹底と啓発・教育を図るとともに、その遵守状況の監査を定期的に実施いたします。
    また、ご本人の個人情報を保護するために必要な安全管理措置の維持・向上に努めてまいります。

    6.個人情報の開示・訂正・利用停止等の手続

    ご本人が、弊社が保有するご自身の個人情報の、利用目的の通知、開示、内容の訂正、追加又は削除、利用の停止、消去及び第三者への提供の停止を求める場合には、下記に連絡を頂くことで、対応致します。

    株式会社イーディーエー 個人情報お問合せ窓口
    〒106-0032 東京都港区六本木7丁目14番23 ラウンドクロス六本木4F
    TEL:03-5422-7524 FAX:03-5422-7534
    Mail:[email protected]

    7.ご提供いただく情報の任意性

    個人情報のご提供は任意ですが、同意を頂けない場合には、第3項にあります利用目的が達成できない事をご了承いただくこととなります。

    8.弊社Webサイトの運営について

    弊社サイトでは、ご本人が弊社Webサイトを再度訪問されたときなどに、より便利に閲覧して頂けるよう「クッキー(Cookie)」という技術を使用することがあります。これは、ご本人のコンピュータが弊社Webサイトのどのページに訪れたかを記録しますが、ご本人が弊社Webサイトにおいてご自身の個人情報を入力されない限りご本人ご自身を特定、識別することはできません。
    クッキーの使用を希望されない場合は、ご本人のブラウザの設定を変更することにより、クッキーの使用を拒否することができます。その場合、一部または全部のサービスがご利用できなくなることがあります。