ディープリンク
https://gyazo.com/35992f6dd0c18e73b53489f036d009e2
なんか難しすぎない?
ディープリンク
例えばウェブ上のTwitter投稿URLやYouTube動画リンクをスマホでタップすると、その投稿や動画がアプリで直接開くことができる機能の総称
ただし、これらの手法ではアプリがインストールされていないと、何も起きないか妙な挙動をしてしまう。
URLの://より前の部分を独自に定義して、アプリを起動するURLとする。例えばmyapp://details/123というリンクを定義し、それをタップするとOSが対応するアプリを起動して「ID=123の詳細ページ」を表示する
開発者は自分のアプリにユニークなスキーム名(例:myapp)を登録して使用します。実装が比較的簡単で自由にスキーム名やパスを設計できる利点があります。
一方で課題として、ユーザーの端末にアプリがインストールされていないとリンクが機能しない(何も起きないかエラーになる)ことや、スキーム名がグローバルに管理されないため他アプリと衝突するリスクがあることが挙げられます。
実際に一般的な名前のスキームを複数のアプリが使用すると、どのアプリが反応するか不定となり「乗っ取り」のような問題が生じる可能性があります(悪意あるアプリが同じスキームを登録するケースなど)
ユニバーサルリンク (Universal Links)
iOSにおける新しいディープリンク手法で、iOS 9以降で導入されました。従来のカスタムスキームと異なり、通常のhttps://から始まるウェブURLをそのまま利用して、対応するiOSアプリへリンクできる仕組みです
もし対応するアプリがインストールされていればアプリ内のコンテンツが開き、未インストールなら通常通りウェブページが表示されます
課題としては、実装にあたりアプリ側とウェブサーバ側の双方の設定が必要な点です。iOSアプリに「Associated Domains」を設定し、自身のドメインと紐付けた上で、ウェブサーバにはapple-app-site-associationという特別なJSON形式のファイルを配置してドメイン所有証明を行う必要があります またiOSのユニバーサルリンクでは、アプリ未インストール時に直接App Storeへ誘導することはできず、リンククリック時は一旦ウェブサイトが開くだけとなります(※ウェブ側でアプリ紹介バナーやダウンロードリンクを提示することで間接的にストアに誘導可能です
アプリリンク(App Links)
Android 6.0以降で利用可能な、Android版ユニバーサルリンクとも言える仕組みです。通常のウェブURLを特定のネイティブアプリに直接紐付けることで、ユーザーが対応するリンクをタップした際に自動的にアプリが起動し、該当コンテンツを表示します。
例えば、https://example.com/article/123に対し自社アプリを対応付けしておけば、そのリンクをAndroid端末でクリックしたとき、アプリがインストール済みなら記事画面をアプリで開けます。未インストールの場合はブラウザでそのURLを開くか、場合によってはGoogle Playストアに誘導される挙動となります
(※Chromeブラウザでは、対応アプリ未インストール時にバナーで「アプリをインストールしますか」と促すケースがあります)
App Linksを実現するには、開発者はアプリのAndroidManifest.xmlにインテントフィルタを設定して対応URLパターンを宣言し、さらにそのドメインのウェブサーバ上にDigital Asset Links (assetlinks.json)という認証ファイルを配置してドメイン所有を証明する必要があります。これによりAndroidは該当アプリをドメインの正当なハンドラーとみなして、リンククリック時にユーザーの選択画面(どのアプリで開くかのダイアログ)を経ずに直接アプリへ遷移させることができます
なお名称が似ていますが、Facebook社が2014年に提唱した「App Links」規格(後述)とはコンセプトが共通するものの、Androidプラットフォームに組み込まれた仕組みとして進化したものです。
Facebook App Links
上記とは別に、2014年4月(Facebook F8カンファレンス)で発表されたオープンソースのディープリンク規格
自分のウェブページに所定の<meta>タグを埋め込んで各OSアプリ用のディープリンク先を宣言します
たとえばニュース記事のページにApp Links用メタタグを入れておけば、Facebookアプリ内ブラウザでそのリンクを開いた際に対応アプリ(ニュースアプリ)がある場合は直接起動して記事を表示できます。当時標準がなかった異種プラットフォーム間のリンク共有を容易にする取り組みでした
ネイティブ機能(ユニバーサルリンクやAndroid App Links)の登場以降はあまり言及されなくなりました。
スマートアプリバナー (Smart App Banner)
ディープリンクではありませんが関連技術として触れておきます。iOS 6(2012年)で追加されたSafariブラウザの機能で、ウェブサイトに特殊なmetaタグを設置することで、Safari上部にそのサイトの対応アプリを宣伝・起動するバナーを表示できます
Adjust
Firebase Dynamic Links (2025終了予定
Bitly