目的
「LINEBOT くんのメッセージをタップしたらアプリに飛ぶようにしてほしい!」
という要件を貰ったけど、
そのあたり全く初見だったので調べてまとめてみました。
ディープリンクとは
任意のアプリに遷移できるリンク(URL)のことです。
アプリに遷移できるだけでなく、更にその中の特定の画面を指定して遷移することができます。
スマホでTwitterやYoutubeのリンクをタップした時に、アプリが立ち上がって見たかった投稿や動画を開いてくれることってありますよね? あの仕組みのことです。
プラットフォームごとのディープリンク対応
プラットフォーム | 種類 | 対応 | URL |
---|---|---|---|
Android | App links | Android6.0 以降 | WebURL |
Android | App Indexing | Android | WebURL |
Apple | universal links | iOS9 以降 | WebURL |
どちらも | Custom URL Scheme | iOS,Android | カスタム URL |
Android(Google)
App Links
App Linksはオープンソースのアプリ連携サービスです。Facebookが提供しています。https://
から始まる URL を利用できます。
メリット
- WebURL から直接アプリを起動できる
- Android 特有のアプリ選択画面を飛ばせる
デメリット
- 認証情報ファイルを https 通信可能なサーバに上げておく必要がある
- android 6.0(2015 年 10 月リリース)以降しか対応していない
設定方法
下記が参考になりました。
App Linksに対応してみた - Qiita
App Indexing
App Indexingは、その名の通りアプリのコンテンツをインデックスして、Google検索の結果からアプリに直接遷移することができるサービスです。Googleが提供しています。
参考になった記事: AppIndexing について - Qiita
iOS(Apple)
universal links
universal linksは、iOS9から使用できるサービスです。https://
から始まる URL を利用できます。
例:LINE(https://line.me/R/
)
メリット(universal links)
- アプリが端末に入っていない場合の挙動を設定できる(Store に飛ばす等)
- WebURL から直接アプリを起動できる
デメリット(universal links)
- 認証情報ファイルを https 通信可能なサーバに上げておく必要がある
- iOS9(2015 年 9 月リリース)以降でしか使えない
設定方法(universal links)
こちらが参考になりました。
Universal Links を試してみました。関連づけファイル(apple-app-site-association)は S3 に置きました。 | Developers.IO
共通
Custom URL Scheme
amzn://apps/android?asin=B004FRX0MY
や comgooglemaps://
など、アプリ独自に決めた scheme を利用する方法です。
メリット(Custom URL Scheme)
- iOS8 以前,android 6.0 以前でも動く
デメリット(Custom URL Scheme)
- アプリがインストールされていない場合に動作しない
- 他のアプリと競合する可能性がある
設定方法(iOS)
2種類の実装方法があるけど内容は同じです。
info.plist
から設定するTARGET > info
から設定する
Safariから固定 URL(my-app://
など)を叩けばアプリを起動できます。
まとめ
今から実装するとなったらApp Links
≒ universal links
が良さげだなと思いました。
どちらもWebURLから直接アプリを起動できるので、LINEのメッセージ上から遷移が可能です。
参考
途中に載せさせて頂いてるサイトも大変参考になりました……ありがとうございます……
真面目に Deep Link 対応したい話 - Qiita
iOS/Android のディープリンクについての雑な説明 - Qiita