アプリにリンクしたい的な話
PICK UP POST

アプリにリンクしたい的な話

アプリ開発のお仕事をしているときに要望としてよくいただく話として、「メニューに別のアプリを開くボタンをつけて欲しい」というのがあります。似たような話として「ホームページにアプリのクーポン画面を開けるリンクをつけたい」とか「Push通知でWebページを開きたい」というのもあります。

こういう話ってWebページのリンクの感覚で簡単にできそうな気がしてしまいますが、実は意外とできなかったりします。EAPはできますけど。

なんでできないかという話の根本には、Webページの情報はインターネット上にあってURLで場所を指定できるけど、自分がスマホ内で見ているアプリそのものやアプリ内のクーポンとかの画面は、スマホの中にあってインターネット上のものではないのでURLみたいなものが存在しない、ということがあります。

 

カスタムURLスキーム

でも、実際にはWebページからアプリを開いたり、Push通知からWebページを開いたり、アプリから別のアプリを開いたりすることは、「EAPはできますけど」って書いてるくらいなので技術的にはできます。

WebページのURLには「http:」とか「https:」とかついてるのを見かけると思いますが、これはURLスキームと呼ばれる情報です。「ftp:」とか「mailto:」とか「tel:」とかもあります。

難しい話をズバッと端折ってしまえば、このURLスキームによってどんなアプリケーションを起動するかを決められると考えていいです。たとえば「http:」や「https:」と書かれていたらブラウザを起動し、「mailto:」と書かれていたらメールソフトを起動するという感じです。

だったら、アプリ毎になんかURLスキーム決めちゃえばどんなアプリでも起動できるんじゃないの? と思ったアナタ。その通り。それがカスタムURLスキームです。

アプリを開発するとき、アプリを起動するためのカスタムURLスキームを設定することができます。例えば篠キチアプリ(何のアプリだ) を開発したときにカスタムURLとして「shinokichi:」を設定しておけば、篠キチアプリがインストールされた端末では「shinokichi://」というWebページみたいなリンクで篠キチアプリを起動することができるようになります。

 

ディープリンク

カスタムURLスキームを使ってアプリをリンクで起動できることはわかりましたが、これだと単にアプリを起動するだけなので必ずアプリの起動画面が開いてしまい、「アプリ内のクーポン画面を開く」というようなことができません。

ディープリンクというのはWebサイトのTOPではない下の階層にあるコンテンツに直接リンクすることを指したりしますが(当たり前すぎて、いまどきそれをわざわざディープリンクとは言わないですけど)、同様にアプリをカスタムURLスキームを使って開くだけでなく、アプリの起動画面以外のコンテンツを直接開けるようにすることもディープリンクと呼ばれています。

アプリにカスタムURLスキームを設定すると、そのあとにWebページのURLみたいに情報をつけることができます。この情報をアプリは取得することができるので、アプリ側が受け取った情報をもとに特定の画面を開けるようにプログラムしておけば、例えば篠キチアプリで「shinokichi://coupon」みたいに指定すると篠キチアプリのクーポン画面を開くことができるようになります。篠キチアプリで何のクーポンが表示されるのか知りませんけど。

 

URLスキームの重複問題

さて、篠キチアプリを作るにあたって「shinokichi:」というURLスキームを設定しましたが(妄想)、もしほかに「しのきち」アプリを作った人がいて、同じように「shinokichi:」というURLスキームを設定したらどうなるでしょう。

落語家の立川晴の輔さんは真打昇進前は「立川志の吉」を名乗っていらっしゃいました。篠キチより遥かに著名な方なので「志の吉アプリ」を作られていたかもしれません。その場合URLスキームが同じになる可能性は極めて高そうです。篠キチをはじめ全国で「しのきち」を名乗る皆さんにとって非常に気になる問題です(杞憂)。

実はその答えは「不定」です。どうなるか決まっていません。これはカスタムURLスキームの最大の欠点といってもいいかもしれません。

カスタムURLスキームを使ったときにどんな動作になるかは端末内にどんなアプリが入っているかで決まります。篠キチアプリまたは志の吉アプリのいずれかしか端末に入っていない場合は「shinokichi:」でインストールされているアプリが開けますが、両方インストールしている端末では、どっちを開いたらいいかわからない状態になってしまい、実際どっちが開かれるかもわからないのです(後から入れた方が優先されるような気もしますが、そうでもないらしい)。

そんなこんなで仕様的にそうなってしまっているので、URLスキームはなるべくユニークにしておく方が安全かもしれません。篠キチアプリも「sunshine-shinokichi-yeaaaaaah:」とか「bike-shinokichi-bike:」とかにしておくほうがよさそうです。

 

アプリが入っていないときの問題

同じURLスキームのアプリが2つ以上入ってるとヤバいことはわかりましたが、そもそも1つも入ってなかったらどうなるでしょう。

篠キチアプリの行く末を考えると大変気になる問題ですが、話が長くなってきておじさん疲れてきましたので、今回はこのへんにして続きはあらためて書いてみたいと思います。

TAG

  • このエントリーをはてなブックマークに追加
篠キチ
Planner 篠キチ shinokichi

約3年半にわたり君臨したランチェスター最年長の座を譲り、今はただの猫・鉄道・Perfume好きな不惑おじさん。好きなスタバオーダーはクワットロベンティノーホイップソイホワイトモカ。