ディープリンク・ウェブリンク・アップリンクの違い – Android
業務中にディープリンク(Deep Links)・ウェブリンク(Web Links)・アップリンク(App Links)がごちゃごちゃになることがあるのでまとめました!
目次
まとめ
・ディープリンクはスキームにhttp・https・任意の値を含んだもの
・ウェブリンクはディープリンクの中でもスキームがhttp・httpsだけのもの
・アップリンクはウェブリンクの中でもautoVerifyプロパティが設定されているもの
用語まとめ
読み進めていく中でパッと見ではわからなかったものをまとめました!
・スキーム(scheme): 「https://vegcale.com/」の「https」のように「://」より前の部分
・uri: この文脈では、どこに何があるかを識別する文字列 (おおまかな詳細はこちら)
全体像
右の図はAndroid公式の「Handling Android App Links」から拝借しました
こちらの図でなんとなくわかるかもしれませんが、ディープリンクは総称になっています
迷ったらディープリンクと言っておけばとりあえず大丈夫です笑
下記ではそれぞれのリンクがどのように分かれているか、その見分け方をまとめています
ディープリンク
アプリの特定の画面に直接遷移するuriのことをディープリンクと呼びます
AndroidManifest.ktに下記のように書くことで設定ができます
...
<activity
android:name=".YourActivity" // 遷移先に設定したいActivity
android:exported="true"
...>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="yourscheme" /> // 任意のスキーム
</intent-filter>
</activity>
...
ディープリンクをクリックすると下記のようにダイアログが表示される可能性があります
これは、押されたディープリンクに対応できるアプリの一覧が表示されています
※キャプチャは「Handling Android App Links – Deep links」から拝借しました
ウェブリンク
ディープリンクの中でもスキームにhttpもしくはhttpsを使用しているものをウェブリンクと呼びます
アップリンク
ウェブリンクの中でも下記の通りautoVerifyプロパティが設定されているものを指します
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="myownpersonaldomain.com" />
</intent-filter>
おわりに
iOSにはユニバーサルリンク(Universal Links)などほかの呼び方があるようです
ややこしいですねぇ。。。
間違いのご指摘や質問等ありましたらコメントまでお願いいたします🙇♂️